タイムスタンプが作成されたディレクトリにファイルをコピーする方法は?

タイムスタンプが作成されたディレクトリにファイルをコピーする方法は?

こんにちは。ドキュメントディレクトリ内のすべてのファイルをタイムスタンプ付きのバックアップディレクトリにコピーしようとしています。そのため、Documentsというディレクトリを作成し、bk$( the time stamp of the directory)Documentsディレクトリのファイルを新しく作成した一意のディレクトリにコピーしてみました。これはcrontab文書のバックアップファイルで行われ、バックアップが開始されると、ディレクトリタイムスタンプによって一意に識別される各バックアップの新しいディレクトリが作成されます。何らかの理由でcporを取得できませんcpio -mdp

bkdate="date +%Y_%m_%d_%H_%M_%S"
PATH=/home/user/backup/
bksource="/home/user/Documents/"

mkdir /home/user/backup/"bk$(date +%Y_%m_%d_%H_%M_%S)"
cp $bksource * ls | tail -l | $PATH

オプションがありますが、ctime残念ながらディレクトリ作成日には機能しません。

私のアプローチは次のとおりですが、ファイルの代わりに最近作成されたディレクトリを使用します。

find $HOME -type d -daystart ctime 0

誰もが新しいディレクトリにコピーするのを手伝ってくれてありがとう。

回避策:以下はターゲットを使用するソリューションです。私はこの目的に使用できる他の方法について開いています。

bkdest=/home/user/backup
bksource=/home/user/Documents
target=${bkdest}/bk.$(date +%Y_%m_%d_%H_%M_%S)
mkdir -p $target
cp ${bksource}/* ${target}/

ベストアンサー1

$ PATHという変数でこの場所を設定できます。この変数は、シェルが実行するコマンドを探す検索パスとして特別な意味を持ちます。これを作成したディレクトリ(空)に設定すると、シェルがコマンドを見つけることができなくなります。

変数名を別のものに変更します。そうすれば、すべてがうまくいくでしょう。

おすすめ記事