Chcę zobaczyć, jakie pliki zostaną usunięte podczas wykonywania w systemie rm
Linux. Wydaje się, że większość poleceń ma opcję uruchamiania na sucho, aby wyświetlać takie informacje, ale nie mogę znaleźć takiej opcji rm
. Czy to w ogóle możliwe?
Chcę zobaczyć, jakie pliki zostaną usunięte podczas wykonywania w systemie rm
Linux. Wydaje się, że większość poleceń ma opcję uruchamiania na sucho, aby wyświetlać takie informacje, ale nie mogę znaleźć takiej opcji rm
. Czy to w ogóle możliwe?
Odpowiedzi:
Powiedz, że chcesz uruchomić:
rm *.txt
Możesz po prostu uruchomić:
echo rm *.txt
a nawet po prostu:
echo *.txt
aby zobaczyć, które pliki rm
zostaną usunięte, ponieważ jest to powłoka *.txt
, która się nie rozwija rm
.
To jedyny raz, kiedy ci to nie pomoże rm -r
.
Jeśli chcesz rekursywnie usuwać pliki i katalogi, możesz użyć find
zamiast rm -r
np
find . -name "*.txt" -print
a następnie, jeśli to robi to, co chcesz, zmień -print
na -delete
:
find . -name "*.txt" -delete
tree
.
find . -name "*.txt" -delete
nie wydaje się rekurencyjne. Usunąłem wszystkie pliki, ale nie usunąłem katalogów wymienionych w-print
find . -type d -empty -delete
find
nie usunie katalogów, które nadal zawierają pliki (odpowiednik rm dir/
bez -r
). Trzeba by opróżnić katalog pierwszy - lub używać find
do -exec rm
z odpowiednimi opcjami, aby to zrobić. np.find . -depth -name "*.txt" -exec rm -r {} +
echo rm *.txt
metody wydaje się mieć wadę. Prezentuje wyniki w skonkatowanej liście (długi ciąg z jednym plikiem po poprzednim), w przeciwieństwie do listy pionowej. Czy jest jakiś sposób, aby wyjście wyświetlało się na liście pionowej (jeden plik na linię)? (UPDATE: Widzę, że find
metoda robi to, co mam o Więc biegnę z tym.).
Możesz powiedzieć:
rm -i
aby uruchomić go w trybie interaktywnym, rm
poprosi Cię o potwierdzenie, czy każdy plik powinien zostać usunięty. Możesz po prostu odpowiedzieć „nie” na każdy plik, aby zobaczyć, które z nich zostaną zmienione.
Możesz użyć, ls
aby wyświetlić listę wszystkich plików, które zostaną usunięte przez rm
:
ls ../path/*.txt
Jeśli musisz wyświetlić listę, aby wyświetlić pliki, które zostaną usunięte za pomocą rekurencji rm
, użyj -R
flagi z ls
:
ls -R ../path/*.txt
ls */*/*.txt
-R
opcją.