
하나의 와일드카드 배치 복사본이 나에게 적합합니다.
sudo cp /home/jenkins/dist/*.war /opt/tomcat/webapps/
그러나 또 다른 유사한 것은 그렇지 않습니다:
sudo cp /opt/tomcat/webapps/*.war /home/jenkins/archive
cp: cannot stat '/opt/tomcat/webapps/*.war': No such file or directory
그러나 실제로 두 폴더 모두 다음과 같은 종류의 파일을 가지고 있습니다.
sudo ls -l /opt/tomcat/webapps/
total 330536
drwxr-x--- 5 tomcat paysoft 4096 Sep 26 02:12 ROOT
-r-x------ 1 tomcat tomcat 127981631 Sep 26 02:10 ROOT.war
drwxr-x--- 4 root root 4096 Feb 26 2023 site-api
-r-x------ 1 tomcat tomcat 106277537 Sep 26 02:11 site-api.war
drwxr-x--- 4 tomcat paysoft 4096 Sep 26 02:11 web-api
-r-x------ 1 tomcat tomcat 104181448 Sep 26 02:11 web-api.war
그리고
sudo ls -l /home/jenkins/dist/
total 569312
-rw-r--r-- 1 jenkins jenkins 112948432 Aug 1 2022 money-transfer-web.jar
-rw-r--r-- 1 jenkins jenkins 127981631 Sep 26 02:03 ROOT.war
-rw-r--r-- 1 jenkins jenkins 106277537 Sep 26 02:03 site-api.war
-rw-r--r-- 1 jenkins jenkins 131561362 Sep 26 02:03 terminal-server.jar
-rw-r--r-- 1 jenkins jenkins 104181448 Sep 26 02:03 web-api.war
이유는 무엇입니까?
PS 디렉토리 자체는 다음과 같습니다.
sudo ls -l /home/jenkins/
total 8
drwxr-xr-x 2 root root 4096 Jul 11 15:20 archive
drwxr-xr-x 2 jenkins jenkins 4096 Jun 30 2022 dist
답변1
sudo cp /home/jenkins/dist/*.war /opt/tomcat/webapps/
여기서 (권한이 없는) 쉘은 결과 명령줄을 sudo에 전달하기 전에 '*' 확장을 시도합니다. 따라서 해당 동작은 /home/jenkins/dist/에서 읽을 수 있는 권한에 따라 달라집니다.
디렉토리에 대한 권한이 무엇인지는 표시하지 않았고 해당 내용만 표시했습니다.
반대로 다음 경우에는 루트 쉘에 의해 확장이 수행됩니다.
sudo 'cp /home/jenkins/dist/*.war /opt/tomcat/webapps/'