2010-06-09 2 views

ответ

1

-depth просто означает, что содержимое каталога обрабатывается до самого каталога:

pax> find /tmp 
/tmp 
/tmp/.X11-unix 
/tmp/pax 
/tmp/sort444444 
/tmp/sort544444 
/tmp/sort644444 
/tmp/sort744444 
/tmp/XWin.log 

pax> find /tmp -depth 
/tmp/.X11-unix 
/tmp/pax 
/tmp/sort444444 
/tmp/sort544444 
/tmp/sort644444 
/tmp/sort744444 
/tmp/XWin.log 
/tmp 

-print означает, что каждый элемент печатается на стандартный вывод. Это часто по умолчанию используется в системе, где вы не указываете действие, но я видел, что некоторые из них по умолчанию ничего не делают (не очень полезно, на мой взгляд).

Вы, вероятно, лучше (если ваша система поддерживает их) явно с помощью -print0 если вы собираетесь перенаправив вывод в xargs (и использовать xargs -0). Это устранит проблемы с пробелами в именах файлов.

+0

Фактически я использую это в cpio, как find. | cpio -o | cpio -id, поэтому я хочу, чтобы cpio создавал директории, если их не существует – soField

+0

, поэтому имеет значение использовать параметр глубины, чтобы создать cpio для создания dirs или я могу использовать straigthforward find – soField

+0

На самом деле, если вы _creating_ каталоги, вы, вероятно, t хочу '-depth'. Сначала вы хотите создать каталоги, а не файлы внутри них. В любом случае, я думаю, что 'cpio -d' будет создавать каталоги в любом случае, так что это может не иметь значения. – paxdiablo

Смежные вопросы