現在のディレクトリ内のすべてのエントリを現在のディレクトリの下のサブディレクトリにバックアップするか、サブディレクトリがない場合は新規作成します。

現在のディレクトリ内のすべてのエントリを現在のディレクトリの下のサブディレクトリにバックアップするか、サブディレクトリがない場合は新規作成します。

現在のサブディレクトリが事前に作成されたと仮定し、現在のディレクトリのすべての内容をサブディレクトリにコピーする次のコマンドがあります。

cp -p !($PWD/bakfiles2) bakfiles2/

しかし、時には以前にアクセスしたことがないフォルダにアクセスする必要があるため、「bakfiles2」サブディレクトリがない可能性があります。どういうわけか、現在のタイムスタンプを使用してバックアップディレクトリを作成できます(既存のディレクトリとの競合を避けるため)。シングルコピーコマンドまたはbashスクリプトを使用しますか?

スクリプトが特定のパターンで始まるすべてのサブディレクトリを無視し、ディレクトリ名に対してそのパターンを保持できる場合はbackup良いでしょう_bak_*メモ:*は任意の文字数を意味します)。

ベストアンサー1

cpこのコマンドには、処理中にターゲットディレクトリがない場合はターゲットディレクトリを作成するオプションはありませんが、スクリプトを介してこれを実行できます。

rsyncまたは、最後のレベルにのみターゲットディレクトリが存在しない場合は、ターゲットディレクトリを作成できるコマンドを使用します。

rsync -rv --exclude='_bak_*/' /path/in/source/ /path/to/destination
  • インポートを実行すると、/ソース/path/in/source/ディレクトリ自体がコピーされるのを防ぎ、--excludeディレクトリを一致する名前と同期しないオプションが追加されます。

おすすめ記事