그래서 저는 Linux를 처음 접했고 .log로 끝나는 /var/log의 내용을 archive라는 새 디렉터리에 있는 log.tar라는 tar 파일에 보관하는 작은 스크립트를 작성했습니다. 그런 다음 tar 파일의 내용이 나열되고 백업이라는 새 파일로 추출된다고 가정합니다.
#!/bin/bash
mkdir archive
mkdir backup
cd archive
tar -cvf log.tar /var/log/*.log
tar -tf tar.log
tar -xf tar.log -C ~/backup
그래서 스크립트를 실행하면 이런 결과가 나옵니다.
tar: Removing leading `/' from member names
/var/log/alternatives.log
/var/log/auth.log
/var/log/bootstrap.log
/var/log/dpkg.log
/var/log/fontconfig.log
/var/log/gpu-manager.log
/var/log/kern.log
/var/log/vboxadd-install.log
/var/log/vboxadd-setup.log
/var/log/Xorg.0.log
var/log/alternatives.log
var/log/auth.log
var/log/bootstrap.log
var/log/dpkg.log
var/log/fontconfig.log
var/log/gpu-manager.log
var/log/kern.log
var/log/vboxadd-install.log
var/log/vboxadd-setup.log
var/log/Xorg.0.log
그래서 아카이브할 때 줄의 /var/log/ 부분을 제거할 수 있는지 궁금해서 tar 파일의 내용을 나열할 때 이것을 얻습니다.
alternatives.log
auth.log
bootstrap.log
cron.log
dpkg.log
kern.log
mail.log
백업 파일에서 ls를 수행하면 var 디렉터리가 표시되고 var 디렉터리에서 las를 수행한 다음 마지막으로 로그 디렉터리에서 로그 파일이 표시됩니다. 그러면 /var/log/ 경로명과 디렉토리 없이 추출하는 방법은 무엇입니까?
답변1
tar 명령에서 /var/log 디렉토리에 있으면 됩니다.
tar cf /path/archives/yourfile.tar *.log
그러면 파일에 경로가 없으며 대상 파일은 아카이브 디렉터리에 있습니다.
이 구성에서 스크립트를 수정하면 스크립팅을 배우고 훈련할 수 있습니다.