有时,有些教程旨在解释一些更奇特的命令和奇怪的命令,另一方面,有些教程包含串行发行版,不如cd,ls,cat等流行,但它们是实用的。 在本教程中,我将向您展示使用其中两个命令可以完成的操作: 基本名告诉我.
也许是先验的,他们对您来说似乎很荒唐,没有用,但是他们 相当实际的应用 在某些情况下,例如在脚本中,有必要提取路径的某些部分,例如文件名或目录,以便对此执行另一命令...
他们是干什么的
这些命令是非常基本的,并且 它的功能 是:
- 基本名:用于从路径中提取文件名。
- 目录名:用于从路径中提取目录名称。
用法示例
在这里你可以看到一些 Ejemplos 如何使用它们:
- 例如使用 基本名 使用/ 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
显然,在此脚本中,“路径名”始终是常量开头所声明的静态变量,但是在某些情况下,路径名可能不是 它变得实用。 例如:
/*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
这些事情的一个很好的例子是,当您学习时,您会发现没用,但是当您学习该主题时,您会发现它们是多么实用。