파일 세트에 대한 심볼릭 링크를 만들려고 합니다.
pdf
origin_directory
확장자가 an인 모든 파일을 현재 디렉토리에 연결하고 싶다고 가정해 보겠습니다 .
지금까지 나는 다음 명령을 가지고 있습니다.
ln -nfs origin_directory/*.pdf -t .
이것은 매우 잘 작동합니다. 현재 디렉터리에 파일이 없으면 pdf
문제가 발생합니다 . 이 경우 origin_directory
현재 디렉터리에 파일이 생성되고 링크가 끊어지기 때문입니다.*.pdf
이것을 피할 수 있는 방법이 있나요?
답변1
Bash에서는 이것이 작동합니다
if [ -e origin_directory/*.pdf ] ; then ln -nfs origin_directory/*.pdf . ; fi
편집: 파일이 너무 많은 경우
if [ $(ls origin_directory/*.pdf | wc -l) -gt "0" ] ; then ln -nfs origin_directory/*.pdf . ; fi
답변2
사용하는 경우 bash
먼저 실행됩니다.
shopt -s failglob
아니면 더 나은 방법은 다음을 입력하는 것입니다..bashrc
이제 이 작업을 수행할 때마다:
ln -nfs origin_directory/*.pdf -t .
성공하거나 실패합니다(오류 메시지가 표시되고 아무 작업도 수행하지 않음).
매뉴얼에서
failglob 설정하면 경로 이름 확장 중에 파일 이름 패턴이 일치하지 않으면 확장 오류가 발생합니다.