shell文件名|如何用shell获取linux目录下的文件名

shell文件名|如何用shell获取linux目录下的文件名的第1张示图

❶ shell脚本对比文件名不同

脚本思路!使用复whilereadline1循环读取testa文件制在这个循环里面,再whilereadline2循环读取testb文件在第二个循环下,再if判断line1(使用awk用切割字符)和line2,两者不同就打印line1完成脚本!

❷ linux shell 怎么将一个目录下面文件名字进行改名

#!/bin/bashpth="/home/cnbubble/test/tt/"#建议写局对路径forfin`ls$pth`dosed-i'1i#!/bin/sh'"$pth$f"#使用sed在第一行前加一行sed-i'1attisqlxz_abmy<<!'"$pth$f"#在第一行后再加一行mv"$pth$f""$pth${f}.sh"#移动专文件,相当属于重命名#chmod+x"$pth${f}.sh"#加其他操作,比如更改权限done

上的脚本会对要处理的文件夹中所有的文件进行操作,脚本放置此文件夹以外。不然要更改程序,避免操作自身

❸ 如何用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

❹ shell内文件名修改为:主机名+文件名,如何实现

HOSTNAME=`hostname`DATE=`date +%y%m%d`PACK_NAME=${HOSTNAME}_db${DATE}.tgz### PACK_NAME 即为你想要的名字打包的话用tar即可,比较简单。

❺ 怎么用shell脚本将文件名改名

修改文件名可以有不同的命令方式,比如rename, mv都可以实现对于单个的文件,可以直接使用以上的命令,那如果有大量的类似格式的文件名需要修改成其他格式的,该如何呢?比如某次测试后,保存的文件为 Lan1.txt, Lan2.txt,….Lan100.txt这一百个文件需要在前面添加前缀变成类似 ch7_Lan1.txt,如果你还想使用mv来一个一个…多痛苦啊当前文件夹下,文件修改有4种方式1. 使用while Loop加 ${//}来实现Lan到 ch7_Lan的替换点击(此处)折叠或打开find . -name "Lan*txt" -type f | read filesdonew=${files/Lan/ch7_Lan}mv $files $newdone2. 充分利用 awk的分隔符功能来实现 点击(此处)折叠或打开ls *Lan* | awk 'BEGIN{FS="Lan";OFS="ch7_Lan"}{printf "mv "$0" ";$1=$1;print $0}' | sh首先,修改 FS和 OFS,输入和输出的分隔符其次,使用 awk中的命令,拼接 “mv Lan1.txt ch7_Lan1.txt”这条命令最后,使用|sh来执行一个 shell命令来完成 mv动作其中,$1=$1是必须的,这个是完成 Lan===> ch7_Lan的关键(其实是可以使用 $2=$2等来替换,只要一个赋值动作而已)奇怪的是,难道没有赋值动作,分隔符的改变就不能检测出来么??3. 使用 awk的内置命令,gsub和 system来实现替换和命令执行点击(此处)折叠或打开ls "*Lan*" | awk '{org=$0;gsub("Lan", "ch7_Lan");system("mv "org" "$1)}'首先保存原始的数据其次修改 Lan为 ch_Lan最后执行mv动作

❻ shell怎么用文件名查找文件位置

题主你好,

使用命令: find

具体格式: find / -name 文件名

命令格式解释:

find: 查找文件时使用的命令;

/ :斜杠相当于windows下的全盘搜索;

-name 文件名: 这两个是一起的, -name参数告诉find命令使用 "文件名" 进行搜索.

总结: 使用find命令,全盘搜索名称为"文件名"的文件, 返回的结果是相应文件名的绝对路径.

—-

举例来说:

我的系统上有一个文件叫car, 但我不知道这个文件在哪,则可以使用下面命令进行搜索:

可以看到, 返回的搜索结果为/root/ok/car, 也就是说我要找的car文件在/root/ok目录下.

—–

希望可以帮到题主, 欢迎追问.

❼ shell脚本中模糊匹配目录下的文件名

forfilein`ls目录路径内`容doif[[$file==sunmary_day*]];thenmv$file${file}.txtfidone

❽ shell 文件重命名

楼上误解了,问题说的不是一个确定的文件名,而是符合这种文件格式的所有文件。 用正则匹配:ls|awk '/.*_A_B_.*_.*_.*/{system("mv "$0" "$0"_BF")}' 或者用循环语句:for file in *_A_B_*_*_*do mv $file ${file}_BFdone 前提都是这些文件在同一个目录下。

❾ linux shell 如何导出文件名到文本

当前目录下的mp4dir -1 *.mp4>ABC.LIST这个是递归搜索子目录下所有mp4:find ./ -name '*.mp4' >ABC.LIST

❿ shell 显示脚本文件名.

会!有两种方法:echo $0 (快捷方法,bash内置一些缩写变量)echo $BASH_SOURCE (根本方法, bash 的Shell Variables , 更多的Shell Variables 可以看看 man bash)

未经允许不得转载:山九号 » shell文件名|如何用shell获取linux目录下的文件名

赞 (0)