El problema está en cómo xargs
lee la entrada y la pasa al comando.
Podemos ver esto fácilmente conrm -i
$ touch a 'b c' 'd
> e'
$ find -type f | cat
./d
e
./b c
./a
$ find -type f | xargs rm -i
rm: cannot remove './d': No such file or directory
rm: cannot remove 'e': No such file or directory
rm: cannot remove './b': No such file or directory
rm: cannot remove 'c': No such file or directory
rm: remove regular empty file './a'? $
Tenga en cuenta que tratamos de eliminar 5 archivos; ./a
, ./b
, c
, ./d
ye
Entonces, tanto el espacio como la nueva línea en el nombre del archivo hacen que se pasen dos argumentos al comando.
La solución estándar es usar find -print0
yxargs -0
$ find -type f -print0 | xargs -0 rm -i
rm: cannot remove '.': Is a directory
rm: remove regular empty file './d\ne'?
rm: remove regular empty file './b c'?
rm: remove regular empty file './a'? $
Ahora el carácter NUL (que no puede ser parte de un nombre de archivo )se usa como separador y el espacio en blanco no es significativo.
zfs list
Используйте параметр list
в команде zfs
, встроенной в FreeBSD.
zfs list
Пример:
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 4.41G 17.4G 88K none
zroot/ROOT 3.49G 17.4G 88K none
zroot/ROOT/default 3.49G 17.4G 3.15G legacy
zroot/tmp 112K 17.4G 112K /tmp
zroot/usr 947M 17.4G 88K /usr
zroot/usr/home 184K 17.4G 128K /usr/home
zroot/usr/ports 947M 17.4G 947M /usr/ports
zroot/usr/src 88K 17.4G 88K /usr/src
zroot/var 792K 17.4G 88K /var
zroot/var/audit 88K 17.4G 88K /var/audit
zroot/var/crash 88K 17.4G 88K /var/crash
zroot/var/log 348K 17.4G 348K /var/log
zroot/var/mail 92K 17.4G 92K /var/mail
zroot/var/tmp 88K 17.4G 88K /var/tmp
$
Узнайте больше наzfs
справочной странице . Команда zfs
имеет множество опций для управления широкими возможностями файловой системы ZFS .