basename 및 dirname : 알아야 할 두 가지 명령

터미널 쉘 Linux 명령

때때로 일부 튜토리얼은 좀 더 이국적이고 이상한 명령을 설명하는 데 목적이 있습니다. 반면에 직렬 배포를 포함하고 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


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   그레고리오 로스

    학습 할 때 쓸모가 없다고 보지만 주제에 도달하면 얼마나 실용적인지 알 수있는 좋은 예입니다.