日付に基づいてフォルダ名を変更するヘルプ

日付に基づいてフォルダ名を変更するヘルプ

「Backup yzT Jan-01-2013」フォルダがあります。毎日バックアップするスクリプトも作成しました。

私が直面している問題は、日付に基づいて毎日フォルダの名前を変更する方法です。新しい名前を選択するのは簡単です。

"/home/yzT/Backup yzT `date '+%b-%d-%Y'`"

しかし、「Backup yzT Jan-01-2013」フォルダを正確に選択する方法は?毎日が違うからです。

頑張った

mv "/home/yzT/Backup yzT *" "/home/yzT/Backup yzT `date '+%b-%d-%Y'`

mvパスが正規表現のように動作することを望んでいますが、残念ながらそうではありません。

それでは、フォルダ名をどのように変更しますか?

答え1

を引用したため、コマンドmvが機能しないため、*ファイル名のグロービングが開始されませんでした。

次のように試すことができます。

mv "/home/yzT/Backup yzT "* "/home/yzT/Backup yzT `date '+%b-%d-%Y'`

*(引用符から削除されたものです。これはいいえ正規表現の一致、つまりワイルドカード.)

これは、そのディレクトリで始まるそのディレクトリのすべてのファイル名と一致するため、デフォルトのディレクトリがあるシナリオBackup yzTでは機能しません。Backup yzT weekly

それからあなたは本物これらのディレクトリ名はあなたを難しくします。このオプションを選択した場合:

yzT.daily.timestamp yzT.weekly.timestamp etc...

すべてのスクリプトを正しく書くのを難しくするスペースを心配する必要はありません。また、このシナリオを使用すると、毎週のバックアップとは別に毎日のバックアップを簡単に実行したり、2人のユーザーのバックアップを独立して簡単に実行したりできます。

最後に、スクリプトで日付形式を使用することは、ローカライズされたタイムYYYYMMDD.HHMMSSスタンプよりも扱いやすいです。たとえば、デフォルトではうまくソートされ、解析するのは簡単です(言語、月名マッピングなどについて心配する必要はありません)。

関連情報