Linux系统中获取路径的文件名的方法

Linux系统中获取路径的文件名的方法,第1张

这篇文章主要介绍了Linux系统中获取路径的文件名的方法,文中总结出了两条,需要的朋友可以参考下

代码如下:

[root@dabu.info

]#basename

/root/aaa/bbb/dabu.txt

显示:

代码如下:

dabu.txt

#获取路径的文件名

shell脚本中如何获得脚本文件所在路径?

方法一:

代码如下:

[root@dabu.info

]#DIR=$(cd

"$(dirname

"$0")"

pwd)

[root@dabu.info

]#echo

$DIR

但是像这种dirname

"$0"这种写法,在遇到source命令时会得到错误的结果。

方法二:

代码如下:

[root@dabu.info

]#echo

"$(

cd

"$(

dirname

"${BASH_SOURCE[0]}"

)"

&&

pwd

)"

上面一行命令可以获得脚本的绝对轮径,无论你在何处调用这个脚本。

但是如果含有软链接,就无法使用了。所以,我们为了能正确解析指向脚本的软链接,可以使用下面的多行命令:

代码如下:

SOURCE="${BASH_SOURCE[0]}"

while

[

-h

"$SOURCE"

]

do

#

resolve

$SOURCE

until

the

file

is

no

longer

a

symlink

DIR="$(

cd

-P

"$(

dirname

"$SOURCE"

)"

&&

pwd

)"

SOURCE="$(readlink

"$SOURCE")"

[[

$SOURCE

!=

/*

]]

&&

SOURCE="$DIR/$SOURCE"

#

if

$SOURCE

was

a

relative

symlink,

we

need

to

resolve

it

relative

to

the

path

where

the

symlink

file

was

located

done

DIR="$(

cd

-P

"$(

dirname

"$SOURCE"

)"

&&

pwd

)"

也可与source,bash

-c命令使用

但是,如果你在脚本中使用先cd切换到其他目录,在运行时上面的命令片段时,则上面的命令不能等到正确的结果。可以参考关于$CDPATH

陷阱的文章。想理解它如何其作用的,可以运行下面的代码

代码如下:

#!/bin/bash

SOURCE="${BASH_SOURCE[0]}"

while

[

-h

"$SOURCE"

]

do

#

resolve

$SOURCE

until

the

file

is

no

longer

a

symlink

TARGET="$(readlink

"$SOURCE")"

if

[[

$SOURCE

==

/*

]]

then

echo

"SOURCE

'$SOURCE'

is

an

absolute

symlink

to

'$TARGET'"

SOURCE="$TARGET"

else

DIR="$(

dirname

"$SOURCE"

)"

echo

"SOURCE

'$SOURCE'

is

a

relative

symlink

to

'$TARGET'

(relative

to

'$DIR')"

SOURCE="$DIR/$TARGET"

#

if

$SOURCE

was

a

relative

symlink,

we

need

to

resolve

it

relative

to

the

path

where

the

symlink

file

was

located

fi

done

echo

"SOURCE

is

'$SOURCE'"

RDIR="$(

dirname

"$SOURCE"

)"

DIR="$(

cd

-P

"$(

dirname

"$SOURCE"

)"

&&

pwd

)"

if

[

"$DIR"

!=

"$RDIR"

]

then

echo

"DIR

'$RDIR'

resolves

to

'$DIR'"

fi

echo

"DIR

is

'$DIR'"

1、用CRT软件连接一个Linux系统 。

2、打开需要查看的文件夹。 以 tmp为例。

3、用 ll 命令 查看有哪些文件。

4、默认为按照大小进行排序。 需要按照时间进行排序。

5、用 ll -t  命令进行时间排序,这样是默认为降序。

6、用 ll -t | tar 命令进行时间排序,这样为升序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8987524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存