이름이 다음과 같은 파일이 있습니다.f{number}.ext
다른 디렉토리에는 디렉토리 목록이 있습니다.
- 001
- 002
- 003
- ....
각 디렉토리에는 파일 목록이 포함되어 있습니다.
- f001.ext
- f002.ext
- ...
파일 이름은 각 디렉터리에서 반복되지만 이들은 서로 다른 파일입니다. f{number}.ext
참조된 디렉터리 목록에서 이 파일( )을 찾아 루트 디렉터리 이름을 가져와야 합니다 . 예를 들어 003
파일을 찾을 수 없으면 메시지를 인쇄해야 합니다.
fdupes
이 작업에 사용할 수 있나요 ?
답변1
다음 bash 스크립트를 사용할 수 있습니다.
#!/bin/bash
for iNumb in '001' '002' '003' '004' '005'; do
myFile=`ls */f${iNumb}.ext 2>&1`
if [ "${myFile:0:2}" == "ls" ]
then
echo "File f${iNumb}.ext: File not found"
else
echo "File f${iNumb}.ext:" `dirname ${myFile}`
fi
done
2>&1
파일을 찾을 수 없을 때(예: ) ls 오류 메시지를 처리 합니다ls: cannot access */f005.ext: No such file or directory
.if
문자열이myFile
an으로 시작하는지ls
(그러면 오류가 발생했습니다) 아닌지(그런 다음 파일을 찾았습니다) 테스트 합니다.dirname
디렉토리를 반환합니다.basename
파일 이름을 반환합니다.