디렉토리에 적용될 때 'touch'명령은 무엇입니까?
$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
디렉토리에 적용될 때 'touch'명령은 무엇입니까?
$ mkdir test
$ ls -l test
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
$ touch test
$ ls -l
drwxrwxr-x 2 dragos dragos 4096 Oct 27 18:08 test
답변:
맨 페이지에 명시된 바와 같이 기본 용도 touch
는 다음과 같습니다.
각 파일의 액세스 및 수정 시간을 현재 시간으로 업데이트하십시오.
따라서 디렉토리의 액세스 및 수정 시간을 업데이트합니다.
상단의 예에서는 "touch"가 디렉토리의 시간을 설정한다는 것을 명확하게 나타내지 않습니다 (목록의 새로운 시간은 디렉토리가 작성된 후 터치가 너무 빨 랐기 때문에 원래 시간과 동일 함). 예, 설명서에서 "FILE"의 정의에는 디렉토리가 포함되어 있으므로 터치를 사용하여 타임 스탬프를 변경할 수 있습니다.
다른 작업을 수행 할 권한이 있어도 디렉토리의 타임 스탬프 (일부 유형의 원격 마운트 디렉토리의 경우)를 변경할 수없는 상황이 있습니다. 예 :이 NFS 마운트 :
$ touch -d "2014-07-02 12:15" /public/test.dir
touch: setting times of ‘/public/test.dir’: Operation not permitted
또한 일부 서버에서 지원되지 않는 일부 오래된 날짜와 같은 문제가 발생할 수 있습니다. 예를 들면 다음과 같습니다.
$ mkdir /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Mar 11 17:40 /Acer/kopies/test.dir
이것은 작동합니다 :
$ touch "2014-04-01 00:00" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Apr 1 2014 /Acer/kopies/test.dir
이것은 로컬 디렉토리에서 작동하지만 Samba 마운트에서 이상한 날짜를 제공합니다.
$ touch -d "1955-07-02 12:15" /Acer/kopies/test.dir
$ ls -ald /Acer/kopies/test.dir
drwxr-xr-x 2 mark aitchison 0 Nov 26 60410 /Acer/kopies/test.dir
~~~~~~~~~~~~~
touch
파일의 액세스 및 수정 타임 스탬프를 변경하는 데 사용되는 표준 Unix 프로그램입니다. 빈 파일을 새로 만드는 데에도 사용됩니다.SUS (Single Unix Specification)는 터치시 파일의 액세스 시간, 수정 시간 또는 둘 다를 변경해야한다고 지정합니다. 파일은 단일 인수로 제공된 경로 이름으로 식별됩니다. 또한 식별 된 파일이 존재하지 않으면 파일이 작성되고 액세스 및 수정 시간이 지정된대로 설정되도록 지정합니다. 새로운 타임 스탬프를 지정하지 않으면 touch는 현재 시간을 사용합니다.
위키 백과
touch
다음과 같은 명령 을 사용하여 명령 (또는 알고 싶은 다른 명령) 에 대한 자세한 정보를 찾을 수 있습니다 man
.
man touch
문제의 즉각적인 이유는 기본 시간 해상도 ls -l
가 분 단위이므로 동일한 분 안에 터치 된 파일 시스템 항목이 기본 ls -l
출력 에서 정확히 동일하게 표시되기 때문 입니다.
이에 대한 솔루션은 /superuser/355318/how-to-have-linux-ls-command-show-second-in-time-stamp에 설명되어
있으며 기본적으로 ls -l --time-style=full-iso
대신 실행이 필요 합니다.