Se ho una directory contenente alcuni file i cui nomi hanno spazi, ad es
$ ls -1 dir1
file 1
file 2
file 3
Posso copiarli con successo in un'altra directory come questa:
$ find dir1 -mindepth 1 -exec cp -t dir2 {} +
Tuttavia, l'output di find dir1 -mindepth 1
contiene spazi non di escape:
$ find dir1 mindepth 1
dir1/file 1
dir1/file 3
dir1/file 3
Se uso print0
invece di print
, l'output contiene ancora spazi non di escape:
$ find dir1 mindepth 1 -print0
dir1/file 1dir1/file 2dir1/file 3
Per copiare questi file manualmente usando cp
, avrei bisogno di sfuggire agli spazi; ma sembra che ciò non sia necessario quando cp
provengono gli strumenti find
, indipendentemente dal fatto che io usi +
o \;
alla fine del comando.
Qual è la ragione di questo?
find..exec
può gestire strani nomi di file da solo ..