セキュリティカメラからコピーしたファイルディレクトリがありますが、ファイルの日付別にサブディレクトリとして設定したいと思います。例えば。
-rwxrwxrwx 0 root root 4935241 Jul 19 2012 DSCN1406.JPG
-rwxrwxrwx 0 root root 4232069 Jul 19 2012 DSCN1407.JPG
-rwxrwxrwx 0 root root 5015956 Jul 20 2012 DSCN1408.JPG
-rwxrwxrwx 0 root root 5254877 Jul 21 2012 DSCN1409.JPG
そのディレクトリのファイルを見て、次の名前で3つの必要なディレクトリを作成するために実行されるスクリプトが必要です。
drwxrwxrwx 1 root root 0 Sep 2 16:49 07-19-2012
drwxrwxrwx 1 root root 0 Sep 2 16:49 07-20-2012
drwxrwxrwx 1 root root 0 Sep 2 16:49 07-21-2012
次に、ファイルを適切なディレクトリに移動します。これを達成するための良いスクリプト方法の提案がある人はいますか?
答え1
LinuxとCygwinではdate -r
。
for x in *.JPG; do
d=$(date -r "$x" +%Y-%m-%d)
mkdir -p "$d"
mv -- "$x" "$d/"
done
(私は明確で標準的でソートしやすいYYYY-MM-DD日付形式を使用しています。)
答え2
クリーンアップするオブジェクトがファイルであることを確認してください。これは重要な確認事項です。失敗した場合、その日付のディレクトリ自体が別の日付に移動される可能性があります。実際には、これはより多くの回答を作成し、複数回実行できるようにします。
dir="mention the directory path"
cd "$dir"
for x in *; do
if [ -f "$x" ]; then
d=$(date -r "$x" +%Y/%B/%d)
mkdir -pv "$d"
mv -v -- "$x" "$d/"
fi
done