❶ 如何用shell获取linux目录下的文件名
获取所有常规文件的文件名并打印出来的脚本listfile.sh如下#!/bin/bashdir="/*"dir=$1$dirfor f in $dirdo if [ -f $f ] then echo $f fidone使用方法:$ listfile.sh PATH原理:PATH参数是路径,将路径后加上“/*”,代表该目录下的所有文件和目录名,利用for循环比较每个文件是否是常规文件( -f比较运算符),若if表达式为真则打印举例:ls -ltotal 36-rwxrwxr-x 1 lipeng lipeng 48 Nov 29 20:08 aaa.shdrwxrwxr-x 2 lipeng lipeng 4096 May 4 2015 byteorderdrwxrwxr-x 8 lipeng lipeng 4096 May 3 2015 hello-rwxrwxr-x 1 lipeng lipeng 122 Nov 29 20:16 listfile.sh-rw-rw-r– 1 lipeng lipeng 177 Aug 1 03:10 main.cppdrwxrwxr-x 2 lipeng lipeng 4096 Sep 13 16:42 matrixdrwxrwxr-x 5 lipeng lipeng 4096 Apr 28 2015 modbusdrwxrwxr-x 2 lipeng lipeng 4096 Sep 13 10:10 shtestdrwxrwxr-x 2 lipeng lipeng 4096 Sep 16 18:21 test$ ./listfile.sh ../aaa.sh./listfile.sh./main.cpp
❷ linux获取文件名不包括扩展名
linux没有扩展名这个说法,所有的文件都只有文件名,系统从文件的属性来区分可执内行文件和不可执容行文件。而所有的所谓的扩展名都是人为的规定。如你也可以将一个sh脚本叫做a.txt,运行照样通过。如果你想去掉"a.local.txt.aaa"这种文件名的所有后缀,可以用C语言来编程,或者写shell脚本,找出第一个'.'字符,把它和它后面的都去掉就行了。
❸ Linux批量提取文件名
简单的获取文件名的话,可以输入命令:ls,如果需要把整个磁盘所有文件名字打出的话,需要写个脚本,循环递归下。
❹ Linux中获取文件名,然后创建该文件名(不包含扩展名)命名的文件夹
思路:先找到文件,再建立find /tmp -name 'test' -exec mkdir -p {} \;
❺ linux 如何提取文件夹名
提取抄当前文件夹名称可以结合袭使用pwd命令和basename命令,pwd命令返回当前工作路径,basename命令去掉前导的目录部分后打印“名称”。$ basename `pwd`注意:pwd两侧为反引号`,作用是运行两个反引号之间的命令,并且将命令运行的结果返回。提取当前文件夹的所有子文件夹可以使用find命令,设置查询文件类型参数为-type为目录d,还可以设置-maxdepth参数为1,不查询二级子目录。$ find . -type d -maxdepth 1
❻ linux 获取文件名的问题
basename是最常用的,除此之外,Bash中还有个用字符串处理的方法(适用于bash):for i in /var/html/*do echo $i #全路径内名 echo ${i##*/} #文件名done#表示去除从指定容字符向前所有的字符;##表示最大匹配。%表示去除从指定字符向后所有的字符;%%表示最大匹配。
❼ linux下,从如何文件路径字符串中java提取文件名。
我是写C的,懂一点linux。C语言里面有readdir库函数,可以读文件,然后会保存在回d_name结构体里,直接用答就行。Java的话,通过ls >文件的命令,把文件列表存文件里再读取,是不是一个好办法?
❽ linux取文件名中倒数第m-n个字符重命名文件名
#!/bin/bashfor fullfilename in /root/jpg/*.jpg;do filepath=${fullfilename%/*} filename=${fullfilename##*/} fileleftname=${filename%_*} filedatename=${fileleftname##*-} mv $fullfilename "$filepath/$filedatename $filename"done
❾ linux find 怎样取得文件名呢
find ./ -name "*.m" -exec grep -l 'myCenter' {} \; grep加入-l选项,就能将找到的文件名列出linux中的find命令——查找文件名 1.在某目录下查找名为“elm.cc”的文件find /home/lijiajia/ -name elm.cc 2.查找文件名中包含某字符(如"elm")的文件find /home/lijiajia/ -name '*elm*'find /home/lijiajia/ -name 'elm*'find /home/lijiajia/ -name '*elm' 3.根据文件的特征进行查询find /home/lijiajia/ -amin -10 #查找在系统中最后10分钟访问的文件find /home/lijiajia/ -atime -2 #查找在系统中最后48小时访问的文件find /home/lijiajia/ -empty #查找在系统中为空的文件或者文件夹find /home/lijiajia/ -group cat # 查找在系统中属于groupcat 的文件(试了,命令不对。)find /home/lijiajia/ -mmin -5 # 查找在系统中最后5 分钟里修改过的文件find /home/lijiajia/ -mtime -1 #查找在系统中最后24 小时里修改过的文件find /home/lijiajia/ -nouser #查找在系统中属于作废用户的文件(不明白是什么意思)find /home/lijiajia/ -amin 10 #查找在系统中最后10分钟访问的文件find /home/ftp/pub -user lijiajia #查找在系统中属于lijiajia这个用户的文件(PS:以上都是在 /home/lijiajia/文件夹下进行的操作) 4.使用混合查找方式查找文件find /tmp -size +10000000c -and -mtime +2 #查找/tmp目录中大于10000000字节并且在48小时内修改的某个文件find /tmp -user tom -or -user george #查找/tmp目录中属于tom或者george这两个用户的文件find /tmp ! -usr fred #查找/tmp目录中不属于fred的文件 5.查找并显示文件find /home/lijiajia/ -name 'elm.cc' -ls #在目录下查找名为“elm.cc”的文件,并显示这些文件的信息
❿ Linux系统中获取路径的文件名的方法
这篇文章主要介绍了系统中获取路径的文件名的方法,文中总结出了两条,需要的朋友可以参考下代码如下:[[email protected]]#basename/root/aaa/bbb/dabu.txt显示:代码如下:dabu.txt#获取路径的文件名shell脚本中如何获得脚本文件所在路径?方法一:代码如下:[[email protected]]#DIR=$(cd"$(dirname"$0")";pwd)[[email protected]]#echo$DIR但是像这种dirname"$0"这种写法,在遇到source命令时会得到错误的结果。方法二:代码如下:[[email protected]]#echo"$(cd"$(dirname"${BASH_SOURCE[0]}")"&&pwd)"上面一行命令可以获得脚本的绝对轮径,无论你在何处调用这个脚本。但是如果含有软链接,就无法使用了。所以,我们为了能正确解析指向脚本的软链接,可以使用下面的多行命令:代码如下:SOURCE="${BASH_SOURCE[0]}"while[-h"$SOURCE"];do#resolve$SOURCEuntilthefileisnolongerasymlinkDIR="$(cd-P"$(dirname"$SOURCE")"&&pwd)"SOURCE="$(readlink"$SOURCE")"[[$SOURCE!=/*]]&&SOURCE="$DIR/$SOURCE"#if$SOURCEwasarelativesymlink,weneedtoresolveitrelativetothepathwherethesymlinkfilewaslocateddoneDIR="$(cd-P"$(dirname"$SOURCE")"&&pwd)"也可与source,bash-c命令使用但是,如果你在脚本中使用先cd切换到其他目录,在运行时上面的命令片段时,则上面的命令不能等到正确的结果。可以参考关于$CDPATH陷阱的文章。想理解它如何其作用的,可以运行下面的代码:代码如下:#!/bin/bashSOURCE="${BASH_SOURCE[0]}"while[-h"$SOURCE"];do#resolve$SOURCEuntilthefileisnolongerasymlinkTARGET="$(readlink"$SOURCE")"if[[$SOURCE==/*]];thenecho"SOURCE'$SOURCE'isanabsolutesymlinkto'$TARGET'"SOURCE="$TARGET"elseDIR="$(dirname"$SOURCE")"echo"SOURCE'$SOURCE'isarelativesymlinkto'$TARGET'(relativeto'$DIR')"SOURCE="$DIR/$TARGET"#if$SOURCEwasarelativesymlink,weneedtoresolveitrelativetothepathwherethesymlinkfilewaslocatedfidoneecho"SOURCEis'$SOURCE'"RDIR="$(dirname"$SOURCE")"DIR="$(cd-P"$(dirname"$SOURCE")"&&pwd)"if["$DIR"!="$RDIR"];thenecho"DIR'$RDIR'resolvesto'$DIR'"fiecho"DIRis'$DIR'"
未经允许不得转载:山九号 » linux提取文件名|Linux系统中获取路径的文件名的方法