Как я могу свободно удалять файлы в терминале?


33

Например, я делаю

cd Music
dir

и получить

123456789.mp3
qweerkrtrkgljdjfkdjfdkf.mp3
a.mp3
b.mp3
blabla.mp3

как удалить, скажем, файлы qweerkrtrkgljdjfkdjfdkf.mp3 и blabla.mp3 с наименьшими усилиями?

UPD : Ключевая идея заключается в том, что имена файлов могут быть длинными, поэтому я не хочу их вводить.

Ответы:


57

Попробуй это:

rm -f 2.mp3 blabla.mp3

rmудаляет файлы и -fзаставляет его (чтобы он не останавливался, спрашивая вас, хотите ли вы удалить файл). Если это не в вашем домашнем каталоге, добавьте sudo. Вот еще один способ, который может потребовать меньше печатать (хотя немного сложнее для чтения)

rm -f {2,blabla}.mp3

Это расширяется до 2.mp3 blabla.mp3. Если вы хотите использовать большие имена файлов, вы можете использовать подстановочный знак ( *), который будет возвращать все элементы, начинающиеся / заканчивающиеся выбранным вами именем файла. Например:

rm -f bla*

удалит все файлы, начиная с bla. Если вы использовали это:

rm -f *.mp3

Это удалит все файлы, заканчивающиеся на .mp3. Если вы использовали это:

rm -f bla*.mp3

Он удалит все файлы, начиная с blaи заканчивая .mp3. Возможности практически безграничны с *персонажем: P


1
Я знал, что кто-то просто войдет. Глупая клавиатура HTC!

2
Если файлы принадлежат вам в вашей домашней папке, вам не нужно использовать sudo.

Хорошая точка зрения. Я обновил свой пост.
MiJyn

3
Возможно, обратите внимание на возможность использовать символ табуляции для завершения имен файлов?
Дараэль

Что делать, если я хочу включить подкаталоги? Я попытался добавить -r, но это не сработало. У меня есть несколько таких раздражающих. Индексные файлы Mac, которые я хочу удалить с веб-сайта.
Февраль

4

Как все говорят, rm -f <file>таков путь, однако, как сказал stonedsquirrel, вы можете набрать первые несколько букв и нажать, <TAB>и он автоматически заполнит имя файла.


0

Попробуй это: rm qweer*.mp3 bla*.mp3

Внимание: если есть имя файла, которое начинается с этих букв, эта команда обнаружит это.


0

Как уже упоминалось @Hckr, между именами нет сходства. Вы можете использовать шаблоны, например rm *.mp3, удалит все файлы, имена которых заканчиваются на .mp3. Если таких сходств нет, вам нужно указывать каждый файл индивидуально.

На самом деле вы можете сохранить некоторые набрав, используя вкладку завершения. В вашем примере, если вы напечатаете rm qи нажмете клавишу табуляции, она будет завершена до rm qweerkrtrkgljdjfkdjfdkf.mp3. Это работает, потому что это единственный файл, начинающийся с q. Если вы наберете rm bэто, этого будет недостаточно для завершения, потому что у вас есть два файла, начинающиеся с b.


0

Легко rm 2.mp3 blabla.mp3.

ВНИМАНИЕ: Это приведет к постоянному удалению!


Для файлов:

1234.MP3 1345.MP3 1234.MP4

rm -f 1*3*.MP3 удалил первые 2, нет подтверждения, ПОСТОЯННО!

* является чем-то даже пустым, поэтому оно все еще удаляет второе.


1
Может быть, -f после rm

Если есть один файл, начинающийся с q, введите q *, если их больше, он удалит всех q-начальных символов.

Вы знаете, что можете отредактировать свой собственный ответ, включив эту дополнительную информацию.

1
Вместо того, чтобы комментировать, вы должны использовать editкнопку, чтобы добавить эти замечательные дополнения к вашему ответу.
Марко Чеппи

Выполнено! В следующий раз я буду использовать ноутбук.

0

Что бы я сделал, это поместил файлы, которые вы не хотели удалять, в папку перед выполнением этих команд, если их было меньше, чем вы хотели от них избавиться. Но в конечном итоге сочетание Wildcards ("*" и "?") И определяющих операторов сделало бы работу легко. Все зависит от того, какие файлы у вас есть, которые вы хотите сохранить или от которых избавитесь.

Вы когда-нибудь пытались перетащить файлы для удаления в окно терминала? Он может клонировать каталог, а также стиль пути имени файла для вас. Однако, если вы удаляете только 2 или 3 файла, я надеюсь, что это просто для целей обучения, в противном случае я бы набрал пути и имя файла вручную, используя «TAB» на моей клавиатуре, он должен автоматически заполнить имена файлов, указанные в текущий каталог, который начинается с того, что вы уже набрали.


0

Tab завершение является путем . По bashумолчанию это включено в Ubuntu. Это работает так:

$ rm bl<tab>

будет автоматически изменен на

$ rm blabla.mp3

Если имя файла неоднозначно, вам нужно нажать tabеще раз, чтобы увидеть список возможных имен файлов:

$ rm b<tab><tab>
blabla.mp3  b.mp3

Это также работает для ряда других команд, таких как apt-get, serviceи так далее.

Если вы заинтересованы в еще более сложном завершении вкладок, ознакомьтесь zshс конфигурацией Grml , это просто умопомрачительно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.