順序を示すために、最初に2つの数字を追加して、生成時間に応じて名前を変更する必要があるファイルセットがあります。
たとえば、次のようなファイルがあります。
Filename Creation time
api.c 00:15
helloworld.h 00:05
ubuntu.iso 00:10
名前を変更した後、ファイル名は次のようになります。
01_helloworld.h
02_ubuntu.iso
03_api.c
どうすればいいですか?
答え1
これはまたbash
パイプの入口が少ないと仮定する。
ls -tr
文書の印刷最も古い修正まず、他の人は創作時期についてコメントしました。
a=0, ls -tr | while read line; do printf "%s \'%s\' \'%03d_%s\'\n" mv "$line" $((a=a + 1)) "$line"; done|less
答え2
そしてzsh
:
( autoload zmv
set -- *(.Om)
pad=${#${#}}
zmv -n -Q '*(.Om)' '${(l:${pad}::0:)$((++i))}_$f' )
最初にファイル数を取得し(flagsを使用してゼロパディング長を計算できますl
)、通常のファイルのみを選択して削除するglob修飾子を使用するには、zmv
withを使用してファイルの名前を変更します。-Q
.Om
mtime
-n
試運転Switch)結果に満足したら。