아래와 같이 일부 파일을 확장자로 복사할 수 있습니다.
cp *.txt ../new/
그런데 확장자 없이 모든 파일을 복사하는 방법은 무엇입니까?
답변1
@ubaid-ashraf의 대답은 거의 그렇습니다. 확장자 없이 파일을 지정하는 방법은 다음 ksh
과 같습니다.
cp -- !(*.*) /new/path/
파일 이름에 점이 있는 파일을 건너뜁니다.
에서 작동하게 하려면 ( ) 및 ( ) 의 옵션을 bash
활성화해야 합니다 .extglob
shopt -s extglob
kshglob
zsh
set -o kshglob
답변2
다음을 수행할 수 있습니다.
cp -- !(*.txt) /path/to/directory
위 코드는 .txt 확장자가 없는 모든 파일을 복사합니다. 파이프 문자를 통해 여러 확장명을 제공할 수도 있습니다.
예를 들어:
cp -- !(*.txt|*.c|*.py) /path/to/directory
답변3
find+grep을 사용하면 확장자가 없는 파일만 가져올 수 있습니다.
find . -maxdepth 1 -type f | sed 's/^\.\///' | grep -v "\."
따라서 복사 명령은 다음과 같습니다.
cp ` find . -maxdepth 1 -type f | sed 's/^\.\///' | grep -v "\." ` destination_folder