Czy istnieje sposób na find
polecenie bash, aby wypisał, co robi (tryb pełny)?
Na przykład dla polecenia:
find /media/1Tb/videos -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \;
to output:
Found /media/1Tb/videos/102, executing rm -rf /media/1Tb/videos/102
...
find
, więc kciuki w góręfind
miłość urosła jeszcze raz. dzięki :)find -L . -type l -delete -print
A może po prostu użyjesz
rm -vf
pełnego wyjścia rm.źródło
rm
jest fajna, ale jeśli zastąpię ją czymś innym, nie będę już widzieć, nad którymi pracują pliki (chyba, że użyjęecho
wewnątrz-exec
)Alternatywą jest umożliwienie wykonywania poleceń przez
sh -x
:źródło
shell
debug
tryb będzie wystarczająco jasny na temat tego, co się stało. DziękiW
find -D xxxx
niektórych przypadkach może to również pomóc.Poniżej znajdują się dwa przykłady
find -D search
:Przy użyciu RHEL 6.3 (
find
v4.4):Korzystanie z Cygwin 1.7 (
find
4.5):źródło
@ hlovdav za odpowiedź była dla mnie za mało, ale zrobiłem pewne modyfikacje na własny użytek
Wyjaśnienie
pattern
null
osobno, ważne, jeśli masz nazwy plików ze spacjami lub nietypowymi znakamixargs
Czytajnull
oddzielnie, ustaw każdy symbol zastępczy rekordu na%%
To zapewnia również za każdym razem, gdy używa tylko jednego argumentubash
polecenie, jednowierszowe, wszystko, co wchodzi do środka, musi być cytowane'
--
czyli coś zrobić po tym nie maxargs
anibash
możliwości, ale parametry pozycyjne do mojego skryptu jedno-linerbash
skryptu można uzyskać dostęp%%
jako$1
argument pozycyjny nr 1Uwaga: możesz zmienić
%%
wszystko, tylko upewnij się, że nie musisz go używać do niczego innego niż symbol zastępczy. Korzystanie dolara$
lub@
może nie być dobra, chyba że jest to podwójnie@
jak@@
.źródło