linux遍历目录(linux shell 遍历文件夹 并将结果保存 到变量)

:暂无数据 2026-09-11 22:40:07 :1

linux遍历目录(linux shell 遍历文件夹 并将结果保存 到变量)

本篇文章给大家谈谈linux遍历目录,以及linux shell 遍历文件夹 并将结果保存 到变量对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

linux shell 遍历文件夹 并将结果保存 到变量

#!/bin/bash
(( $# 《 1 )) && echo "param is zero!" && exit 1
 && echo "$1 not path" && exit 1
dir=$1
dir_p="$dir Directory :"
cd $dir
dir=`pwd`
for i in `ls $dir`
do
    if ; then
        /tmp/sh/dir_file $i            #我的脚本文件在/tmp/sh中,需要改一下这里
    else
        dir_p="$dir_p File $i"
    fi
done
cd ..
echo $dir_p

实验结果:

# ./dir_file /tmp/python/

python_2 Directory : File 1.log File 2.log

python_3 Directory : File 3.log

/tmp/python/ Directory : File p File t.py File y.py

这样应该可以吧,试试看

在linux shell(bash)编程中,如何通过递归方式遍历文件

写一个函数,函数的参数是目录路径字符串
函数内使用 ls -s dir_path , 然后for 遍历循环
如果是目录则继续调用自身
如果是文件则答应文件名
从执行优化的角度来讲,可以把判断目录还是文件的代码放在循环外层.
好久没写shell了 ,我这也没环境测试 , 只能给个思路,函数的具体写法自己找一下资料吧.
另外,find命令可以直接完成你要做的事.

linux平台:使用lua语言遍历某一文件夹下所有文件

你可以参考如下实例代码:

function getFile(file_name) 
    local f = assert(io.open(file_name, ’r’))
    local string = f:read("*all")
    f:close()
    return string
end function writeFile(file_name,string)
 local f = assert(io.open(file_name, ’w’))
 f:write(string)
 f:close()
end --从命令行获取参数, 如果有参数则遍历指定目录,没有参数遍历当前目录 if arg ~= nil then
     cmd = "ls "..arg
else
     cmd = "ls" end print("cmd", cmd)
--io.popen 返回的是一个FILE,跟c里面的popen一样 local s = io.popen(cmd)
local fileLists = s:read("*all")
print(fileLists)
while true do --从文件列表里一行一行的获取文件名 _,end_pos, line = string.find(fileLists, "(+.txt)", start_pos)
        if not end_pos then break end --    print ("wld", line) local str = getFile(line)
    --把每一行的末尾 1, 替换为 0, local new =string.gsub(str, "1,\n", "0,\n");
    --替换后的字符串写入到文件。以前的内容会清空     writeFile(line, new)
    start_pos = end_pos + 1 end

linux shell中的遍历目录并删除目录下与目录名相同的文件

先设定实验环境:
#
造
5
个
目录,每个目录下,造
3
个
文件和两个子目录如下:
cd
$home/tmp
for
i
in
d1
d2
d3
d4
d5
do
mkdir
-p
$i
touch
$i/1.txt
$i/2.txt
$i/3.txt
mkdir
-p
$i/tmp1
$i/tmp2
done
#
检验测试环境:
$
ls
-lr
d1
total
0
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
1.txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
2.txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
3.txt
drwxr-sr-x
2
wenlee
comm
256
dec
22
10:35
tmp1/
drwxr-sr-x
2
wenlee
comm
256
dec
22
10:35
tmp2/
#
利用下列脚本来实现你要做的:
cd
$home/tmp
for
i
in
*/1.txt
do
echo
"found
$i,
save
$i
and
remove
everything
else
under
$(dirname
$i)/"
save_this_file=$(basename
$i)
curr_dir=$(dirname
$i)
#
把这个1.txt暂时存到/tmp里面去,为了避免已经有同样的档案名称在/tmp,加上$$
(i.e.
pid)
mv
$i
/tmp/${save_this_file}.$$
rm
-rf
$curr_dir
mkdir
-p
$curr_dir
mv
/tmp/${save_this_file}.$$
$curr_dir
done
#
屏幕执行输出如下:
found
d1/1.txt,
save
d1/1.txt
and
remove
everything
else
under
d1/
found
d2/1.txt,
save
d2/1.txt
and
remove
everything
else
under
d2/
found
d3/1.txt,
save
d3/1.txt
and
remove
everything
else
under
d3/
found
d4/1.txt,
save
d4/1.txt
and
remove
everything
else
under
d4/
found
d5/1.txt,
save
d5/1.txt
and
remove
everything
else
under
d5/
#
复验实验环境:
$
ls
-l
d?/*
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d1/1.txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d2/1.txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d3/1.txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d4/1.txt
-rw-r--r--
1
wenlee
comm
0
dec
22
10:35
d5/1.txt
ok?
thanks!

怎么使用java编程实现linux下所有文件目录的遍历

为了避免目录列举消耗时间过长,请指定一个目录来模拟,命令行参数:代表路径的字符串.
如果认可代码,请加分50,谢谢
----
import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.io.*;
final public class FileTree extends JFrame {
public FileTree(File dir) throws HeadlessException {
super("File Tree");
JTree tree;
add(new JScrollPane(tree =new JTree(buildTreeModel(dir))));
tree.setCellRenderer(new FileTreeRenderer());
setSize(400,600);
setVisible(true);
}
private TreeModel buildTreeModel(File dir){
DefaultMutableTreeNode root = new DefaultMutableTreeNode(dir);
walkthrough(dir,root);
return new DefaultTreeModel(root);
}
private static void walkthrough(File f,DefaultMutableTreeNode node){
for (File fle : f.listFiles()) {
DefaultMutableTreeNode n = new DefaultMutableTreeNode(fle);
node.add(n);
if (fle.isDirectory()){
walkthrough(fle, n);
}
}
}
private class FileTreeRenderer extends DefaultTreeCellRenderer {
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
JLabel cmp = (JLabel)super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
if (value instanceof DefaultMutableTreeNode) {
DefaultMutableTreeNode n = (DefaultMutableTreeNode)value;
Object obj = n.getUserObject();
if (obj instanceof File) {
File f = (File)obj;
cmp.setText(f.getName());
cmp.setForeground(f.isDirectory()?Color.BLUE:Color.BLACK);
}
}
return cmp;
}
}
public static void main(String args) {
new FileTree(new File(args));
}
}

一个linux下目录遍历函数,有个问题,chdir(dir);chdir(“..“)这两句为什么变更目录

因为为了让程序变得准确可行。
  1、chdir("..");是为了在递归完某一子目录后,退回到其父目录继续遍历后续的普通文件或其他子目录;如果缺少这一语句,那么while循环中的递归printdir将会把父目录中后续的普通文件当作目录来操作,从而造成“无法打开目录”这种错误。
  2、chdir(dir);是为了在程序刚运行时进入指定的目录,以及接下来递归时进入相应子目录;
用`pwd`提取的绝对路径。
  $ more test1
  #!/usr/bin/perl -w
  # script name is test
  use strict;
  my $d="/home/gag";
  my $now=`pwd`;
  print $now,"\n";
  chdir $d;
  print `pwd`;print `ls`;
  `touch iamhere`;
  print "#######################\n";
  chdir $now;print `pwd`;
  `touch iamherethen`;
  $ perl test1
  /home/gag/perl/tmp
  /home/gag
  c
  cpp1
  cpp2
  java
  perl
  shell
  tools
  #######################
  /home/gag
  $ ls
  test1
  $ ls ../../
  c cpp1 cpp2 iamhere iamherethen java perl shell tools

linux下遍历读取所有子目录里的特定文件,并改名复制到别的目录

find . -name a.txt -exec mv {} b.txt \; 其中find后面的"."表示从当前目录开始查找(含子目录),注意最后的“\;"是需要的。

c语言怎么进入上一目录和下级目录

用C语言列出目录下的文件,在linux下可采用readdir(轿灶)函数来实现,代码实现过程为:
打开目录
循环读目录,输出目录下文件
关闭目录指针
参考代码:
#include 《dirent.h》
#include 《stdio.h》
int main()
{
DIR *dirp;
struct dirent *dp;
dirp = opendir("."); //打开目录指针
while ((dp = readdir(dirp)) != NULL) { //通过目录指针读目录
printf("%s\n", dp-》d_name );
}
(void) closedir(dirp); //关闭目录
return 0;
}
在windows下,代码如下:
#include 《io.h》
#include 《stdio.h》
void printDir( const char* path )
{
struct _finddata_t data;
long hnd = _findfirst( path, &data ); // 查找文件名与正则表达式chRE的匹配第一个文件
if ( hnd 《 0 )
{
perror( path );
}
int nRet = (hnd 《0 ) ? -1 : 1;
while ( nRet 》= 0 )
{
if ( data.attrib == _A_SUBDIR ) // 如果是目录
printf(" *\n", ***.name );
else
printf(" \n", ***.name );
nRet = _findnext( hnd, &data );
}
_findclose( hnd ); // 关闭当前句柄
}
void main()
{
printDir("d:/*.*");
}
相关函数说明:
long _findfirst( char *filespec, struct _finddata_t *fileinfo );
// 功 能 : 提供与filespec指定入口泛式匹配的第一个文件.通常后继用_findnext()函数来完成某泛式下的文件遍历.
// 头文件 : #include 《io.h》
// 参 数 : filespec - 目标文件规范,可以包含通配符
// fileinfo - 文件信息buffer
// 斗帆返回值 : 成功返回唯一的搜索句柄
// 出错返回-1,且设置errno为如下值:
// ENOENT 该泛式无法匹配
// EINVAL 无效文件名
int _findnext( long handle, struct _finddata_t *fileinfo );
// 功 能 : 按照前面_findfirst中的泛式规则,查找下一个符合该泛式的文件,并以此为依据修改fileinfo中的值
// 头文件 : #include 《io.h》
// 参 数 : long handle - 搜索句柄(通常由紧靠其前的_findfirst()返回)
// fileinfo - 文件信息buffer
// 返回值 : 成功返回0
// 出错返回-1
int _findclose( long handle );
// 功 能 : 关闭搜寻句柄并释放相应资源
// 头文件 : #include 《io.h》
// 参 数 : long handle - 搜索句柄(通常由紧靠其前的_findfirst()返回) 闭销扮
// 返回值 : 成功返回0
// 出错返回-1

文章分享结束,linux遍历目录和linux shell 遍历文件夹 并将结果保存 到变量的答案你都知道了吗?欢迎再次光临本站哦!

linux遍历目录(linux shell 遍历文件夹 并将结果保存 到变量)

本文编辑:admin

本文相关文章:


单片机unsigned什么意思(为什么单片机编程变量都要定义成unsigned)

单片机unsigned什么意思(为什么单片机编程变量都要定义成unsigned)

这篇文章给大家聊聊关于单片机unsigned什么意思,以及为什么单片机编程变量都要定义成unsigned对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年11月2日 19:30

access变量名的命名规则(在access中为什么y5不可作为变量名)

access变量名的命名规则(在access中为什么y5不可作为变量名)

各位老铁们好,相信很多人对access变量名的命名规则都不是特别的了解,因此呢,今天就来为大家分享下关于access变量名的命名规则以及在access中为什么y5不可作为变量名的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看

2026年9月14日 06:50

js混淆是什么意思(js 变量声明易混淆的几点知识)

js混淆是什么意思(js 变量声明易混淆的几点知识)

大家好,js混淆是什么意思相信很多的网友都不是很明白,包括js 变量声明易混淆的几点知识也是一样,不过没有关系,接下来就来为大家分享关于js混淆是什么意思和js 变量声明易混淆的几点知识的一些知识点,大家可以关注收藏,免得下次来找不到哦,下

2026年7月22日 08:00

全局变量存储在哪个区(全局变量的存储空间在什么时候分配分配在哪)

全局变量存储在哪个区(全局变量的存储空间在什么时候分配分配在哪)

大家好,关于全局变量存储在哪个区很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于全局变量的存储空间在什么时候分配分配在哪的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有

2026年7月19日 11:20

实例方法和实例变量(实例方法只能访问实例变量)

实例方法和实例变量(实例方法只能访问实例变量)

各位老铁们,大家好,今天由我来为大家分享实例方法和实例变量,以及实例方法只能访问实例变量的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年7月4日 10:30

更多文章:


phpcms下载站(有没有phpcms v9的火车头采集入口)

phpcms下载站(有没有phpcms v9的火车头采集入口)

这篇文章给大家聊聊关于phpcms下载站,以及有没有phpcms v9的火车头采集入口对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年11月3日 15:10

十字路口红绿灯plc程序梯形图(简易欧姆龙PLC十字路口红绿灯梯形图)

十字路口红绿灯plc程序梯形图(简易欧姆龙PLC十字路口红绿灯梯形图)

这篇文章给大家聊聊关于十字路口红绿灯plc程序梯形图,以及简易欧姆龙PLC十字路口红绿灯梯形图对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年11月3日 14:50

js压缩图片最低能压缩多百分之多少?把vars.js压缩为vars.rar压缩文件怎么操作

js压缩图片最低能压缩多百分之多少?把vars.js压缩为vars.rar压缩文件怎么操作

本篇文章给大家谈谈js压缩,以及js压缩图片最低能压缩多百分之多少对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年11月3日 11:10

lseek和fseek(read pread write pwrite fseek lseek是同一类函数吗)

lseek和fseek(read pread write pwrite fseek lseek是同一类函数吗)

其实lseek和fseek的问题并不复杂,但是又很多的朋友都不太了解read pread write pwrite fseek lseek是同一类函数吗,因此呢,今天小编就来为大家分享lseek和fseek的一些知识,希望可以帮助到大家,下

2026年11月3日 08:30

直线滑块图片(滑块运动简图怎么画)

直线滑块图片(滑块运动简图怎么画)

大家好,如果您还对直线滑块图片不太了解,没有关系,今天就由本站为大家分享直线滑块图片的知识,包括滑块运动简图怎么画的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年11月3日 06:40

手机网页打不开怎么修复(手机上网打不开怎么办)

手机网页打不开怎么修复(手机上网打不开怎么办)

“手机网页打不开怎么修复”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看手机网页打不开怎么修复(手机上网打不开怎么办)!

2026年11月3日 06:30

hesitation(hesitation是什么意思)

hesitation(hesitation是什么意思)

各位老铁们好,相信很多人对hesitation都不是特别的了解,因此呢,今天就来为大家分享下关于hesitation以及hesitation是什么意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年11月3日 06:10

字体大小在哪里调整(电脑字体大小在哪里调调电脑字体大小的方法)

字体大小在哪里调整(电脑字体大小在哪里调调电脑字体大小的方法)

其实字体大小在哪里调整的问题并不复杂,但是又很多的朋友都不太了解电脑字体大小在哪里调调电脑字体大小的方法,因此呢,今天小编就来为大家分享字体大小在哪里调整的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年11月3日 04:40

网页页面设计的技巧有哪些?急求,jsp采用框架技术设计页面,如何写代码才能实现点击左侧框架内的链接,右侧框架内显示相应网页呢

网页页面设计的技巧有哪些?急求,jsp采用框架技术设计页面,如何写代码才能实现点击左侧框架内的链接,右侧框架内显示相应网页呢

其实设计页面的问题并不复杂,但是又很多的朋友都不太了解网页页面设计的技巧有哪些,因此呢,今天小编就来为大家分享设计页面的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年11月3日 03:00

selection是什么品牌(selection unique是什么葡萄酒)

selection是什么品牌(selection unique是什么葡萄酒)

其实selection是什么品牌的问题并不复杂,但是又很多的朋友都不太了解selection unique是什么葡萄酒,因此呢,今天小编就来为大家分享selection是什么品牌的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分

2026年11月3日 01:50

最近更新

热门文章

新站如何通过网站维护提升SEO排名
2026-10-13 20:56:21 浏览:6
sql server2008下载地址(如何下载SQL Server 2008 R2 SP2免费版)
2026-10-05 05:30:29 浏览:6
标签列表