내가 이것을 원하는 주된 이유는 내가 그것을 많이 사용하기 때문입니다 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