타임스탬프가 생성된 디렉터리에 파일을 복사하는 방법은 무엇입니까?

타임스탬프가 생성된 디렉터리에 파일을 복사하는 방법은 무엇입니까?

안녕하세요. 문서 디렉터리의 모든 파일을 타임스탬프가 있는 백업 디렉터리로 복사하려고 합니다. 그래서 Documents라는 디렉터리를 만들고 bk$( the time stamp of the directory)Documents 디렉터리의 파일을 새로 만든 고유 디렉터리로 복사해 보았습니다. 이 작업은 crontab문서의 백업 파일에서 수행되며, 백업이 시작되면 디렉터리 타임스탬프에 의해 고유하게 식별되는 각 백업에 대한 새 디렉터리가 생성됩니다. 어떤 이유로 cpor 을(를) 얻을 수 없습니다 cpio -mdp.

bkdate="date +%Y_%m_%d_%H_%M_%S"
PATH=/home/user/backup/
bksource="/home/user/Documents/"

mkdir /home/user/backup/"bk$(date +%Y_%m_%d_%H_%M_%S)"
cp $bksource * ls | tail -l | $PATH

옵션이 있지만 ctime불행히도 디렉토리 생성 날짜에는 작동하지 않습니다.

내 접근 방식은 다음과 같지만 파일 대신 최근에 생성된 디렉터리를 사용합니다.

find $HOME -type d -daystart ctime 0

누구든지 새 디렉토리에 복사하는 데 도움을 주시면 매우 감사하겠습니다.

해결 방법: 다음은 대상을 사용하는 솔루션입니다. 나는 이 목적을 위해 사용될 수 있는 다른 방법에 대해 열려있습니다.

bkdest=/home/user/backup
bksource=/home/user/Documents
target=${bkdest}/bk.$(date +%Y_%m_%d_%H_%M_%S)
mkdir -p $target
cp ${bksource}/* ${target}/

답변1

$PATH라는 변수에서 이 위치를 설정할 수 있습니다. 이 변수는 쉘이 실행할 명령을 찾는 검색 경로로서 특별한 의미를 갖습니다. 이를 생성한 디렉터리(비어 있음)로 설정하면 셸이 더 이상 명령을 찾을 수 없도록 할 수 있습니다.

변수 이름을 다른 것으로 바꿉니다. 그러면 모든 것이 잘 될 것입니다.

관련 정보