ファイル名の最終更新日時に基づいてファイル名を変更する

ファイル名の最終更新日時に基づいてファイル名を変更する

コマンドを使用してファイルの名前を変更しようとしmvています。ファイル名にこのファイルの最終更新日 (YYYYMMDD 形式) を追加し、他のフォルダーに移動したいと考えています。現在のシステム日付は次のように取得しました。

mv /home/user/Desktop/a.txt "/home/user/Desktop/testfolder/$(date +%Y%m%d)-a.txt"

他の組み合わせも使用しましたがdate、うまくいきませんでした。コマンドラインで直接実行できるのか、それともスクリプトを作成する必要があるのか​​を知る必要があります。

答え1

次のコマンドを試すことができます:

mv /dir_path/example.txt /new_dir_path/$(date +%Y-%m-%d -r example.txt)example.txt

答え2

おそらく、小さなスクリプト ファイルを使用して正しく動作させるのが最も簡単です。

-お-

現在の日付ではなく変更日を使用したいと考えている場合は、次の出力を参照してください。

ls -l a.txt

または

ls -l --time-style=long-iso a.txt

答え3

ありがとう、分かりました!細かい点は 1 つだけです。元のファイルが存在しないパスからコマンドを使用している場合は、次のようにする必要があります。

mv /dir_path/example.txt /new_dir_path/$(日付 +%Y-%m-%d -r /dir_path/example.txt)example.txt

関連情報