For example, I do
cd Music
dir
and get
123456789.mp3
qweerkrtrkgljdjfkdjfdkf.mp3
a.mp3
b.mp3
blabla.mp3
how do I delete, say, files qweerkrtrkgljdjfkdjfdkf.mp3 and blabla.mp3 with least effort?
UPD: Key idea is that file names can be long so I actually dont want to type them.
Try this:
rm
removes files, and-f
forces it to (so that it wont stop, asking you if you want to delete the file). If this not in your home directory, prependsudo
. Here is another way that might require less typing (a bit harder to read though)This expands to
2.mp3 blabla.mp3
. If you want to use larger filenames, you can use the wildcard character (*
), which will return all items starting/ending with the filename you chose. For example:will remove all files starting with
bla
. If you used this:It will remove all files ending with
.mp3
. If you used this:It will remove all files starting with
bla
and ending with.mp3
. Possibilities are nearly endless with the*
character :PJust as everyone says,
rm -f <file>
is the way to go, however, as stonedsquirrel said, you can type the first few letters and hit<TAB>
and it will autofill the file name.Easy,
rm 2.mp3 blabla.mp3
.CAUTION: This will cause permanent deletion!
For files:
1234.MP3 1345.MP3 1234.MP4
rm -f 1*3*.MP3
would delete the first 2, no confirm, PERMANENTLY!* is anything even blank that is why it still deletes the second one.
Try this:
rm qweer*.mp3 bla*.mp3
Caution: If there is a file name which is started with these letters,this command will detete that.
As @Hckr already mentioned there no similarities between the name. You can use wildcards, e.g.
rm *.mp3
would remove all files whose names end with.mp3
. If there are no such similarities you need to specify every file indivually.You can in fact save some typing by using tab completion. In your example, if you type
rm q
and press the tabulator key it will be completed torm qweerkrtrkgljdjfkdjfdkf.mp3
. This works because its the only file starting withq
. If you'd typerm b
this would not be enough for completion because you have two files starting with b.What I would do is put the files you didn't want to delete in a folder before running these commands if there were less of them than you wanted to get rid of. But ultimately a combination of Wildcards ("*" and "?") and defining statements would get the job done easily. Just depends on what files you have that you want to keep, or get rid of.
Ever tried dragging the files to delete into terminal app window? It may clone the directory as well as the file-name path style for you. However, if you are only deleting 2 or 3 files I hope it is simply for learning purposes otherwise I would type the paths and file-name in manually using the "TAB" on my keyboard it should auto-complete file-names given in the current directory that start with what you already typed.
Tab completion is the way. It's enabled for
bash
in Ubuntu by default. It works like this:will automatically be changed to
If the file name is ambiguous, you need to press tab once more to see a list of possible file names:
This also works for a number of other commands, such as
apt-get
,service
and so on.If you're interested in an even more sophisticated tab completion, check out
zsh
with the Grml config, it's mind-blowing.