Есть ли способ сказать команде bash find
выводить, что она делает (подробный режим)?
Например, для команды:
find /media/1Tb/videos -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
вывести:
Found /media/1Tb/videos/102, executing rm -rf /media/1Tb/videos/102
...
find
, так что палец вверхfind
любовь выросла еще одним чуть-чуть. спасибо :)find -L . -type l -delete -print
Как насчет того, чтобы просто использовать
rm -vf
для подробного вывода rm.источник
rm
- это круто, но если я заменил ее на что-то другое, я больше не смогу увидеть, над какими файлами работают (если я не используюecho
внутри-exec
)Альтернатива состоит в том, чтобы позволить командам быть выполненными
sh -x
:источник
shell
debug
Режим будет достаточно понятным о том, что произошло. СпасибоСуществует также,
find -D xxxx
что может помочь в некоторых случаях.Ниже приведены два примера
find -D search
:Используя RHEL 6.3 (
find
v4.4):Используя Cygwin 1.7 (
find
4.5):источник
@ hlovdav в ответ было достаточно для меня , но я сделал некоторые изменения для собственного использования
объяснение
pattern
null
разделена, важно, если у вас есть имена файлов с пробелами или необычные символы в немxargs
null
разделить чтение , установить для каждой записи заполнитель%%
Это также гарантирует, что каждый раз, когда он использует только один аргументbash
команда, одна строка, все, что идет внутрь, должно быть в одинарных кавычках'
--
что-то, что я делаю после этого, не являетсяxargs
ниbash
параметрами, ни позиционными параметрами для моего однострочного скриптаbash
скрипта вы можете получить доступ%%
как$1
позиционный аргумент № 1Примечание. Вы можете изменить
%%
что-либо, просто убедитесь, что вам не нужно использовать его для чего-либо кроме заполнителя. Использование доллара$
или@
не может быть хорошо, если это не двойной,@
как@@
.источник