숫자로 시작하는 파일에 대한 권한을 변경하는 방법은 무엇입니까?

숫자로 시작하는 파일에 대한 권한을 변경하는 방법은 무엇입니까?

1부터 9까지의 숫자로 시작하는 파일의 권한을 변경하고 싶습니다(예: 1.txt2.txt).

내 코드는 다음과 같습니다

    #!/bin/bash
for(( i = 1 ; i < 10; i++))     
do

for file in /home/vs                   
do
if[ "$file" == "$i" ];                 
then

chmod +456 $file


done                             
done 

그러나 이것은 작동하지 않으며 내 실수가 어디에 있는지 모르겠습니다.

답변1

코드에 공백과 관련된 일부 구문 문제가 포함되어 있으며 if문 하나가 누락되었습니다 fi.

456/home/vs이름이 1에서 9 사이의 숫자로 시작하는 디렉토리의 모든 파일에 대해 숫자 권한을 설정 하려면 다음을 수행할 수 있습니다.

for (( i=1; i<=9; ++i )); do
    chmod 456 /home/vs/"$i"*
done

chmod특정 번호로 시작하는 파일이 없으면 불만이 발생할 수 있습니다. 따라서 우리가 알고 있는 이름을 반복하는 것이 더 일반적입니다.

for pathname in /home/vs/[1-9]*; do
    chmod 456 "$pathname"
done

이것을 하나의 명령으로 단축할 수 있습니다

chmod 456 /home/vs/[1-9]*

chmod이름이 1 에서 9 사이의 숫자로 시작하는 모든 파일을 호출합니다 /home/vs. 그러나 그러한 파일이 수천 개 있으면 실패합니다(명령이 실행하기에 너무 커서 루프를 사용하는 경우).

.txt파일 이름 일치를 파일 이름 접미사가 있는 파일 로만 제한하려면 [1-9]*.txt위 명령을 사용하십시오. 이는 1.txt, 2.txt, 등과 같은 파일 이름과 일치합니다 3 good friends.txt.100 billion humans.txt

관련 정보