bash 스크립트를 통해 하위 디렉토리를 건드리지 않고 디렉토리의 모든 파일에 날짜를 추가하는 방법

산호초

저는 현재 운영 체제 수업을 듣고 있으며 커리큘럼의 일부로 bash 스크립트를 수행하는 방법을 배우고 있습니다. 스크립트를 통해 하위 디렉터리를 건드리지 않고 디렉터리의 모든 파일에 날짜를 추가해야합니다. 모든 파일에 날짜를 추가하는 한 줄짜리 스크립트를 작성했지만 현재 디렉토리의 폴더에도 영향을 미칩니다.

for f in *; do mv -- "$f" "$f-$(stat -c %Y "$f" | date +%Y%m%d)"; done

이것은 파일 이름 끝에 날짜를 추가하지만 내가 말했듯이 그 아래의 디렉토리에 도달합니다. 현재 RedHatLinux에서 bash 버전 4.1.2를 사용하고 있습니다.

나는 유닉스에 대한 경험이 부족하기 때문에 (저는 주로 Windows 사용자입니다) 모두가 혼란스러워서 어떤 도움을 주시면 감사하겠습니다.

안톤

slm이 이미 언급했듯이 $f일반 파일이되도록 테스트 할 수 있습니다 . 내가 배우는 동안 대본을 한 줄로 바꾸지 않고 읽고 유지하기가 더 어려워지는 경향이 있습니다.

for f in *
do 
  if [ -f "$f" ]
  then
    mv -- "$f" "$f-$(stat -c %Y "$f" | date +%Y%m%d)"
  fi 
done

(나중에 줄 ;바꿈 을 삽입 하고 삭제 하여 언제든지 접을 수 있습니다. )

-f테스트 인수가 일반 파일 (없는 장치 또는 디렉토리)로 잘 (같은 다른 검사가있는 -d디렉토리 예를 들어, 테스트 할 수 있도록 if [ ! -d "$f" ]이 경우뿐만 아니라이).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관