YYYY_MM_DD_HH:MM:SS.swf
次の形式でフォルダにファイルをダンプしました。/home/user/dump/
/home/user/save/year/month/day/
ファイル名に基づいてYYYY_MM_DD
このファイルを新しいディレクトリツリーに移動したいと思います。または、ファイルの変更日より前に内容を変更できる場合でも許可されます。ここでいくつかの他のスクリプトを見つけましたが、ここに私が探している情報はすべて含まれていないようです。
ベストアンサー1
Perlベースrename
(時にも呼ばれるprename
)を使用している場合は、単一のコマンドでこれを実行できます。
cd /home/user/dump
rename -v 'use File::Path qw(make_path); m!^((....)_(..)_(..)_(.*))!; my $d = "$2/$3/$4"; make_path($d); s!^!$d/!' *
実際、これは本当ですrename
。各ファイルに対して、コードは次のように実行されます。
- ディレクトリパスの作成を可能にするシステムライブラリが含まれています。
YYYY_MM_DD
ファイル名の先頭の構造と一致します。- 対応するディレクトリパスの生成
YYYY/MM/DD
(必要な場合) YYYY/MM/DD
名前を変更せずにファイルをそのディレクトリに移動する(名前を変更)