私がこれをしたい主な理由は、私がそれをたくさん使うからですdircolors
。たとえば、NTFSからファイルをコピーするls --color=auto
たびに、ほとんどの最新のディストリビューションで標準値になる.mp3
権限が設定されます。umask 022
ただし、オーディオファイルの場合、これは意味がありません。権限が755
(rwxr-xr-x
)に設定されているため、オーディオファイルと同じ色を持ちます。実行可能なシェルスクリプト、実際の実行ファイルについてはこの色を維持したいと思います。これはいいえ窓;でもそしてx
./track1.mp3
所有者/グループ/その他に設定されている権限は端末で機能すると期待できないため、デフォルトのコンソールプレーヤーを選択しようとします。
だから私umask
はボーカルファイル、つまり.mp3、.wav、.oggなどのすべてのファイルのモードは常にに設定されていますが、644
この場所にコピーされた他のすべてのファイルのデフォルトモードはumask
です022
。
これを行う方法はありますか?
(注:cp --preserve
NTFSは* NIX権限システムについて何も知らないため、NTFSに対する元の権限も保持されません。)
答え1
カスタムコマンドの独自のスクリプトを使用してcp
ファイル拡張子を確認し、chmod
適切に使用できます。
次のように簡単に実行できます。 (@ fd0に従ってcp chmodの代わりにinstallを使用してください。とにかくスマートです。)
#!/bin/bash
args=("$@")
dest="${args[@]:(-1)}"
unset args[${#args[@]}-1]
if [ ! -d "$dest" ]; then
echo "Please specify a destination directory as the final argument."
exit 1
fi
for file in "${args[@]}"; do
if [ "$file" == *".mp3" ] || [ "$file" == *".wav" ] || [ "$file" == *".ogg" ]; then
install -m644 "$file" "$dest"
else
install -m755 "$file" "$dest"
fi
done
exit 0
答え2
NTFSからコピーするには、インストールツールを使用します。
install -m644 file1 ... fileN destination_directory