Ho la sfortuna di venire da un background MS-DOS - ma almeno mi fa apprezzare quanto Linux sia più potente. Ho lavorato per portare il mio Linux-Fu alla pari, ma ci sono un paio di cose che potrebbero essere fatte con DOS che non sono sicuro di come realizzare più facilmente con Linux:
Rinominare più file - Usando due caratteri jolly
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\>rename *.txt *.bak
c:\> dir
Directory of c:\
file1.bak
file2.bak
file3.bak
file4.bak
So che potrei usare find -exec
qui, ma è possibile usare una sintassi più breve - forse mv
con alcuni flag o sintassi speciali? Immagino che la chiave di questo sia il secondo *
carattere jolly poiché Linux non dovrebbe avere problemi con il primo (cioè so come selezionare i file che voglio rinominare usando i caratteri jolly)
Rinominare un singolo file - usando un carattere jolly
c:\> dir
Directory of c:\
file1.txt
c:\>rename file1.txt *.bak
c:\> dir
Directory of c:\
file1.bak
Ciò sarebbe particolarmente utile quando si rinomina nomi di file lunghi e ingombranti. Ho pensato che forse avrei potuto usare mv file1.txt $1.bak
per finire con file1.txt.bak
quale sarebbe anche accettabile, ma non sono sicuro che puoi fare riferimento a un $1
parametro inline con un comando shell. Ancora una volta, in questo caso particolare, è solo conveniente il modo in cui ms-dos bastardizza il *
carattere jolly da utilizzare come una sorta di corrispondenza cattura / sostituzione per parte del nome file.
Filtro degli elenchi di directory con un carattere jolly
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
text.txt
\temp (directory)
c:\> dir file*
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\> t*
Directory of c:\
text.txt
\temp (directory)
Non sono sicuro di quale sia la sintassi giusta per farlo ls
o se sia persino possibile. Se avessi fatto qualcosa del genere ls t*
, sarebbe ricominciato nelle directory a partire da t
. La mia soluzione è stata utilizzata find . --max-depth 1 -iname "t*"
o qualcosa del genere ls -al | grep t
- nessuno dei quali è breve e semplice come dir t*
è.
Infine, so di poter impostare gli alias per rendere più brevi questi lunghi comandi, ma mi piacerebbe imparare un po 'di Linux out-of-the-box per fare queste cose perché a volte sei connesso a un sistema remoto o stai lavorando su una nuova macchina.
Quindi, come posso mv
e ls
file allo stesso modo in cui ho usato dir
e rename
file?