私は次の構造を持っています:
root_directory/
foo
bar/
x/
a.txt
b.txt
y
.a_file
scripts/
my_script.sh
コピーするmy_script
内容は、bar/x
「root_directory
使用する場合:
cp -r ../bar/x ..
ディレクトリ外でスクリプトを実行すると中断されますscripts
。」です。
MacとLinuxの両方で動作させるにはどうすればよいですか?
ベストアンサー1
または、相対パスを好む場合は、スクリプトパスを含む配列変数を使用してスクリプトディレクトリの絶対パスを決定できますBASH_SOURCE
。
scripts=$(cd "$(dirname "${BASH_SOURCE[0]}")"; pwd)
cp -R "$scripts"/../bar/x "$scripts"/..
GNUはorをcp
使用しても構いませんが、-r
BSDのマニュアルページには推奨されていないと記載されているので、次のものを使用することをお勧めします。-R
-r
-R
ユーティリティの履歴バージョンのオプションが
cp
あります-r
。この実装はこのオプションをサポートしていますが、特別なファイル、シンボリックリンク、またはFIFOを正しくコピーしないため、使用しないことをお勧めします。