Come estensione alla risposta di Shaido vorrei dare qualche spiegazione sul perché -a
l'opzione non funzionerà qui:
Il ls
comando non elaborare i caratteri jolly. L'interprete della riga di comando esegue questo passaggio:
Se digiti la riga di comando "mycommand *.c
" l'interprete della riga di comando sostituirà prima la stringa jolly "*.c
" dall'elenco dei file corrispondenti e quindi eseguire la riga di comando risultante:
mycommand a.c file.c test.c
L'interprete della riga di comando funziona allo stesso modo per tutti i comandi, quindi non può sapere che -a
significa "compresi i file nascosti" nel caso del ls
comando (mentre -a
ha un significato totalmente diverso per altri comandi)...
I file che iniziano con un punto sono nascosti dagli elenchi di file per impostazione predefinita. Il modo più semplice per abbinare questo tipo di file sarebbe mettere un punto all'inizio dell'espressione. Tuttavia, questo corrisponderà solo ai file che iniziano con .
.
ls -al .*.swo
L'alternativa è impostare dotglob
prima di eseguire il comando, quindi i file che iniziano con .
sarà incluso.
shopt -s dotglob
Aggiungilo al tuo ~/.bashrc
per impostarlo come predefinito.
Tieni presente che l'impostazione dotglob
può portare a risultati imprevisti quando si utilizza la shell bash, poiché sia .
(directory corrente) e ..
(directory principale) apparirà quando si usa *
. Con dotglob
impostato, mai prova a usare rm -R *
.