.cp /media/d/folder1/* /home/userA/folder2/
파일을 복사 하고 있는데 문제는 cp: omitting directory....
. folder1
이 메시지 없이 해당 폴더를 복사할 수 있는 다른 방법이 있습니까? 한 가지 더, (복사 대신) 이동하고 싶다면 똑같은 질문을 하는데 어떻게 해야 하나요? 감사해요
답변1
find /media/d/folder1/ -maxdepth 1 -type f | xargs cp -t /home/userA/folder2
파이프 문자 앞의 부분은 |
지정된 디렉터리의 하위 디렉터리에서 다른 파일을 찾으려고 시도하지 않고 지정된 디렉터리에서 파일을 찾습니다. 파이프 다음 섹션에서는 이러한 파일을 가져와 대상 디렉터리에 복사합니다. 복사하는 대신 파일을 이동하려는 경우 명령을 변경할 수 있습니다 cp
.mv
답변2
공백, 개행 및 기타 이상한 문자가 포함된 파일 이름을 처리할 수 있는 보다 안전한 접근 방식은 find
자체 및 해당 -exec
작업을 사용하는 것입니다.
-exec command {} +
This variant of the -exec action runs the specified command on
the selected files, but the command line is built by appending
each selected file name at the end; the total number of invoca‐
tions of the command will be much less than the number of
matched files. The command line is built in much the same way
that xargs builds its command lines. Only one instance of `{}'
is allowed within the command. The command is executed in the
starting directory.
따라서 다음과 같이 할 수 있습니다.
find /media/d/folder1/ -maxdepth 1 -type f -exec cp {} -t /home/userA/folder2
이렇게 하면 숨겨진 파일도 복사됩니다.
답변3
cp -R dir1/* dir2
이렇게 하면 오류 dir1
없이 모든 항목(파일 및 하위 디렉터리)이 에서 로 복사됩니다 .dir2