확장자가 다른 여러 파일을 한 디렉터리에서 다른 디렉터리로 복사하고 싶습니다.
그래서 나는 다음과 같이 쓸 것입니다 :
cp -r dir1/*.gif dir2
하지만 동일한 명령으로 모든 .jpg 파일을 복사하고 싶습니다. 작동하는 AND 명령이 있습니까?
답변1
간단하게 모두 나열할 수 있습니다.
cp dir1/*.gif dir1/*.jpg dir2
작동 방식은 쉘이 매개변수를 확장 하고 실제로 실행될 수 있도록 *
일치하는 모든 이름을 전달하는 것입니다.cp
cp dir1/file1.gif dir1/file2.gif dir1/file3.jpg dir1/file4.jpg dir2
답변2
cp /path/src/*.{gif,jpg} /path/dest
정보에 대하여와일드카드 및 와일드카드 패턴.
특히:
{ } (curly brackets)
terms are separated by commas and each term must be the name of something or a wildcard. This wildcard will copy anything that matches either wildcard(s), or exact name(s) (an “or” relationship, one or the other).
For example, this would be valid:
cp {*.doc,*.pdf} ~
This will copy anything ending with .doc or .pdf to the users home directory. Note that spaces are not allowed after the commas (or anywhere else).
답변3
For 루프는 이런 종류의 작업에 적합합니다.
예: 현재 디렉터리의 모든 .py 및 .ipynb 파일을 dst/라는 디렉터리로 복사합니다.
for file in *.py *.ipynb; do cp $file /dst/; done