Щось, що я вважаю, я повинен знати точно: якщо я ls <something>, rm <something>вилучу точно ті самі файли, що й lsвідображалися? Чи є обставини, коли rmможна було видалити файли, які lsне відображалися? (Це в 18.04 баш)
Редагувати: дякую всім, хто відповів. Я думаю, що повна відповідь - це комбінація всіх відповідей, тому я прийняв найбільш відповідальну відповідь як "відповідь".
Несподівані речі, які я навчився на цьому шляху:
lsне так просто, як можна подумати, в обробці його аргументів- У простому, не налаштованому на встановлення Ubuntu, псевдонімах .bashrc
ls - Не називайте ваші файли, починаючи з тире, оскільки вони можуть виглядати як аргументи команд, а іменування одного -r це вимагає!
find -deleteкраще, ніж rm? Ви говорите "Саме тому" , але мені абсолютно незрозуміло, до чого це стосується. Також зауважте, що findвиклик буде видаляти всі файли рекурсивно в поточному каталозі, де rmбуде просто видалено файли в безпосередньому каталозі. Крім того -name *, це не-оп. Загалом, я дуже здивований вашими порадами ...
findполягає в тому, що ви можете запустити його, переглянути всі файли, а потім виконати ту саму команду -delete. Оскільки ви вже бачили результати find, не повинно бути ніяких двозначностей щодо того, що буде видалено (я хотів би почути більше деталей про це у формі відповіді)
-delete" - Але як це краще, ніж запустити ls <filespec>, після чого rm <filespec>(що ОП вже знає, як робити)?
find ... -printспочатку, щоб підтвердити, які файли буде видалено, а потім find ... -deleteви все одно видалите файли, створені між двома командами. Якщо ви використовуєте і те, -printі інше -delete, ви не отримаєте підтвердження, а лише звіт про те, що було видалено (а ви можете також використовувати rm -v).
rmнемає--dry-runпрапора ...