나는 Linux Mint에서처럼 'ls'를 사용하는 데 익숙합니다(예: 'ls *.pdf'). 하지만 이 데비안 변형에서는 'ls.pdf'가 불평합니다. 나는 'find -maxlength 1 -type f -name " 길이를 사용하고 있습니다..pdf" -print' 대신 사용하세요.
이것을 읽으면:너 이상하게 일하잖아별로 도움이 되지 않았습니다. 나는 bash_completions 패키지를 가지고 있고 '~/.bashrc' 파일에 'ls'에 대한 이상한 별칭이 없습니다. 나는 '/etc/profile'이나 전역 프로필이 어디에 있든 절대 편집하지 않습니다.
추측만 해도 연결된 질문에 솔루션을 적용했지만 작동하지 않았습니다. 나는 '완료'를 완전히 이해하지 못합니다. 'readline'의 일부인 것 같습니다. 따라서 간단한 설명도 도움이 될 것입니다('man' 페이지가 없습니다).
그래도 작동합니다: 'complete -p ls *.pdf', 'complete --help'는 다음과 같이 말합니다.
-p print existing completion specifications in a reusable format
그래서 이 '규칙'을 영구적으로 적용해야 하는지 궁금합니다. '-D' 플래그를 사용하는 중...?
편집하다
이 문제도 발견되었습니다.
for f in *.pdf; do mv "$f" "BOOK - $F"; done
mv: invalid option -- 'R'
편집 2
위의 두 명령을 시도했는데 내 OS 파티션에서 제대로 작동했습니다. 문제는 작동 중인 Linux Mint와 수정하려는 PDF 파일이 있는 다른 파티션으로 이동할 때 이러한 명령이 실패한다는 것입니다. 두 파티션 모두 ext4이고 사용자 이름, 호스트 이름, UID/GID, 권한 등이 동일합니다.
답변1
대시가 앞에 붙은 파일 이름이 있는 것 같으 -
므로 다음을 사용하십시오.
for f in *.pdf; do mv -- "$f" "BOOK - $F"; done
에서 man bash
:
A는
--
옵션의 끝을 알리고 추가 옵션 처리를 비활성화합니다. -- 뒤의 모든 인수는 파일 이름 및 인수로 처리됩니다. - 인수는 --와 동일합니다.
답변2
-
(빼기 또는 하이픈) 으로 시작하는 파일 이름이 있으면 많은 프로그램에서 이를 옵션으로 해석합니다.
./
이를 피하기 위해 경로 앞에 추가할 수 있습니다 .
ls ./*.pdf
--
많은 프로그램에서는 옵션 끝을 알리기 위해 파일 이름 인수 앞에 삽입할 수도 있습니다 .
ls -- *.pdf
물론 사용자에게 권장되는 접근 방식은 파일 이름을 바꾸는 것입니다.