ls가 현재 날짜와 시간을 표시하도록 합니다.

ls가 현재 날짜와 시간을 표시하도록 합니다.

나는 그것을 사용할 때마다 부작용으로 현재 날짜와 시간을 표시하기를 원합니다 ls. 명령의 기능을 어떻게 변경할 수 있나요?

답변1

date한 가지 옵션은 예를 들어 호출할 별칭을 만드는 것입니다 alias ls='date;ls'. 예는 다음과 같습니다.

$ touch a b c
$ ls
a  b  c
$ alias ls='date;ls'
$ ls
Mon Oct 14 10:37:29 BST 2013
a  b  c

답변2

쉘에 대한 PS1 변수를 정의하십시오. 여기에서 쉘에서 원하는 모든 것을 볼 수 있습니다.

예:

export PS1="\t [\u@\h \W]\$ "
12:01:58 [user@host ~]$ ls /etc/fstab
/etc/fstab
12:02:00 [user@host ~]$ ls /etc/motd
/etc/motd

답변3

왜 이런 짓을 하는지 이해가 안 돼요. 실제로 달성하려는 목표를 공유하면 더 나은 솔루션을 찾는 데 도움이 될 수 있습니다.

제가 개인적으로 하는 일은 PS1 라인을 편집하는 것입니다. 내 PS1 라인은 프롬프트에 다음과 같은 많은 정보를 표시합니다. PS1 라인 보시다시피 날짜와 시간 외에도 많은 정보가 표시됩니다. PS1에서 날짜와 시간을 표시하려면 \@표시 시간과 \d표시 날짜를 추가하세요.

귀하의 질문에 명확하게 답 하려면 .bashrc.~/.bashrc

alias ls='date && ls'

명령 작동 방식을 변경하고 싶지 않다고 말씀하셨습니다. 여기서는 반대처럼 보일 수도 있지만 별칭이 실제로 명령을 변경하지 않는다는 사실을 인식하려면 별칭이 어떻게 작동하는지 이해해야 합니다 ls. 스크립트 내에서 ls를 실행하면 하위 쉘에서 명령이 호출되어 상위 쉘이 별칭 규칙을 적용하지 못하게 됩니다. 따라서 ls출력 형식 변경으로 인해 스크립트 호출이 중단되지 않습니다.

편집: 다른 사람들이 PS1 시리즈 자체에 관심이 있을 수 있으므로 여기에서 자세한 내용을 확인할 수 있습니다.여기. 이는 매우 크고 디렉토리에 수천 개의 파일이 포함되어 있으면 셸 성능이 크게 저하된다는 점에 유의하세요.

관련 정보