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?
file-management
rm
Cory Klein
źródło
źródło
Odpowiedzi:
Powiedz, że chcesz uruchomić:
Możesz po prostu uruchomić:
a nawet po prostu:
aby zobaczyć, które pliki
rm
zostaną usunięte, ponieważ jest to powłoka*.txt
, która się nie rozwijarm
.To jedyny raz, kiedy ci to nie pomoże
rm -r
.Jeśli chcesz rekursywnie usuwać pliki i katalogi, możesz użyć
find
zamiastrm -r
npa następnie, jeśli to robi to, co chcesz, zmień
-print
na-delete
:źródło
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 (odpowiednikrm 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ę, żefind
metoda robi to, co mam o Więc biegnę z tym.).Możesz powiedzieć:
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.źródło
Możesz użyć,
ls
aby wyświetlić listę wszystkich plików, które zostaną usunięte przezrm
:Jeśli musisz wyświetlić listę, aby wyświetlić pliki, które zostaną usunięte za pomocą rekurencji
rm
, użyj-R
flagi zls
:źródło
ls */*/*.txt
-R
opcją.