Linux/Windows 一键获取当前目录及子目录下所有文件名脚本

Linux

  1. linux下递归列出目录下的所有文件名(绝对路径,不包括目录)
ls -lR |grep -v ^d|awk '{print $9}' | sed "s:^:`pwd`/:"
  1. linux下递归列出目录下的所有文件名(绝对路径,不包括目录),并且去掉空行
ls -lR |grep -v ^d|awk '{print $9}' |tr -s '\n' | sed "s:^:`pwd`/:"

如需要将结果写入文件中只需在命令后添加 > 文件名
如:

ls -lR |grep -v ^d|awk '{print $9}' |tr -s '\n' > list.txt

获取当前正在执行脚本的绝对路径

basepath=$(cd `dirname $0`; pwd)

在此解释下basepath :

dirname $0,取得当前执行的脚本文件的父目录
cd `dirname $0`,进入这个目录(切换当前工作目录)
pwd,显示当前工作目录(cd执行后的)

由此,我们获得了当前正在执行的脚本的存放路径。

将以下代码保存为 ssh 脚本,执行即可一键获取

#!/bin/bash
function getdir(){
    for element in `ls $1`
    do  
        dir_or_file=$1"/"$element
        if [ -d $dir_or_file ]
        then 
            getdir $dir_or_file
        else
            echo $dir_or_file
        fi  
    done
}
root_dir=$(cd `dirname $0`; pwd)
getdir $root_dir>list.txt
echo 'END!'
echo '请查看当前目录下 list.txt 文件'

Windows

Windows 下递归列出目录下的所有文件名(绝对路径,包括目录)
复制以下代码,保存到文本文件,将文件后缀改为 .bat,执行即可一键获取

@echo off 
dir /s/b *.* > file_names.txt exit
posted @ 2019-03-27 14:45  王图思睿  阅读(402)  评论(0)    收藏  举报