日付と時刻のスタンプを使用して複数のファイルの名前を一括変更します。

日付と時刻のスタンプを使用して複数のファイルの名前を一括変更します。

以下のように、特定のディレクトリにあるすべての.pdfファイルに作成日とタイムスタンプを自動的に追加する方法が必要です。テストファイル.pdfする必要がありますテストファイル - YYY.MM.DD_HH.MM.SS.pdf 私はOSX端末を使用しています。

私はこのコードを持っています:

    cd "/Users/***/Documents/testmapa"
old_filename=""testfile.pdf"
new_filename=${old_filename%.*}$(stat -f %SB -t "%Y%m%d_%H%M%S" "$old_filename").${old_filename##*.}
mv "$old_filename" "$new_filename"

これはこれを行いますが、1つのファイルから特定のディレクトリ内のすべてのpdfファイルにどのように適用しますか?既定では、いくつかのコードを実行し、ファイルをクリックしたディレクトリ内のすべての.pdfファイルのファイル名にこの作成日を追加するには、「クリック」するファイルが必要です。もう一つ質問があります。このコードはサブフォルダで実行されますか? Perlをインストールしましたが、どのように使用するのかわかりません。名前変更機能とctime統計があることだけを知っていますが、そのコードを書く方法がわかりません。

ベストアンサー1

次のようなものが私にとってうまくいきます。

for files in /home/gv/Desktop/PythonTests/*.sh; do
old_filename=$files
old_filename_stripped=$(basename -a $files)
echo "filename full : $old_filename - file name stripped: $old_filename_stripped"
done

出力:

filename full : /home/gv/Desktop/PythonTests/advfind2.sh - file name stripped: advfind2.sh
filename full : /home/gv/Desktop/PythonTests/advfind.sh - file name stripped: advfind.sh
filename full : /home/gv/Desktop/PythonTests/appslist(draft).sh - file name stripped: appslist(draft).sh
filename full : /home/gv/Desktop/PythonTests/appslist.sh - file name stripped: appslist.sh

拡張コードにはスペースとサブディレクトリが含まれます。

IFS=$'\n'
for files in $(find /home/gv/Desktop/PythonTests/ -name "*.txt" ); do
old_filename="$files"
old_filename_stripped=$(basename -a "$files")
echo "filename full : $old_filename - file name stripped: $old_filename_stripped"
done
unset IFS

出力:

filename full : /home/gv/Desktop/PythonTests/b.txt - file name stripped: b.txt
filename full : /home/gv/Desktop/PythonTests/c.txt - file name stripped: c.txt
filename full : /home/gv/Desktop/PythonTests/a ver 1.txt - file name stripped: a ver 1.txt
filename full : /home/gv/Desktop/PythonTests/d.txt - file name stripped: d.txt
filename full : /home/gv/Desktop/PythonTests/a.txt - file name stripped: a.txt
filename full : /home/gv/Desktop/PythonTests/appsfiles/a.txt - file name stripped: a.txt

PS:最後の行を見てください。サブディレクトリです。

おすすめ記事