때때로 일부 튜토리얼은 좀 더 이국적이고 이상한 명령을 설명하는 데 목적이 있습니다. 반면에 직렬 배포를 포함하고 cd, ls, cat 등으로 인기가없는 일부가 있지만 실용적입니다. 이 튜토리얼에서는 다음 두 명령으로 수행 할 수있는 작업을 보여줍니다. basename 및 말해.
아마도 그들은 당신에게 터무니없는 것처럼 보이며 쓸모가 없다는 선험적 일 것입니다. 꽤 실용적인 응용 예를 들어 파일 이름이나 디렉토리와 같은 경로의 일부를 추출해야하는 스크립트와 같은 일부 경우에 다른 명령이 여기에서 작동하도록 ...
그들은 무엇을 위해
이 명령은 매우 기본적이며 그 기능 위치 :
- 기본 이름: 경로에서 파일 이름을 추출하는 데 사용됩니다.
- 이름: 경로에서 디렉토리 이름을 추출하는 데 사용됩니다.
사용 예
여기에서 몇 가지를 볼 수 있습니다 예 사용 방법 :
- 예를 들어 기본 이름 / etc / passwd를 사용하고 출력에 파일 이름을 반환합니다.이 경우에는 passwd :
basename /etc/passwd
- 지정할 수도 있습니다. 확장 확장명이없는 파일 이름을 제공합니다. 예를 들어 jpg 확장자없이 /home/media/test.jpg 이미지의 이름을 추출한다고 가정합니다 ( prueba):
basename -s .jpg /home/media/prueba.jpg
- 당신은 할 수 있습니다 한 번에 여러 경로 처리 이를 위해 별도로 -a 옵션을 사용해야합니다.
basename -a /etc/passwd /var/log/boot.log
- 반대로 파일 이름없이 디렉토리 이름을 제공하려면 다음을 사용해야합니다. 이름. 예를 들어, 경로 /var/spool/mail/test.txt에서 사용하고 / var / spool / mail을 반환하도록하려면 다음을 사용합니다.
dirname /var/spool/mail/prueba.txt
에 관해서 스크립트의 유틸리티, 여기에 또 다른 예가 있습니다. 간단한 스크립트가 있고 그 안에 가변적 인 경로가 있다고 상상해보십시오. 그러나 파일에 관계없이 파일이 포함 된 디렉토리를 표시하기를 원합니다.이 경우 다음과 같은 것을 가질 수 있습니다.
pathname="/home/usuario/data/fichero" result=$(dirname "$pathname") echo $result
분명히이 스크립트에서 "pathname"은 항상 처음에 상수에 의해 선언 된 것과 동일한 정적이지만 그렇지 않은 경우가있을 수 있습니다. 실용적이된다. 예 :
/*script para convertir una imagen gif en png*/ #!/bin/sh for file in *.gif;do #Salir si no hay ficheros if [! -f $file];then exit fi b='basename $file .gif' echo NOW $b.gif is $b.png giftopnm $b.gif | pnmtopng >$b.png done
학습 할 때 쓸모가 없다고 보지만 주제에 도달하면 얼마나 실용적인지 알 수있는 좋은 예입니다.