导航:首页 > 文件类型 > linuxshell目录文件

linuxshell目录文件

发布时间:2023-04-22 11:32:28

linux的shell脚本中如何获得指定目录下的文件

#/bin/bash
ls/home/user/test>txt
echo"该目录中有文件"`head-1txt`
rm-rftxt

② 如何在linux中使用shell脚本遍历指定目录的文件,将创建时间大于指定时间的文件,复制到指定目录下。

#!/bin/sh
DIR=$1
TIME=$2
OTDIR=$3
TMP=`find
$1
-mtime
+$2
-print`
echo
$TMP
cp
$TMP
$OTDIR
执行时
要有3个参数指定文件的目录
大于指定的时间
复制到的目录
没写验内证部分
参数顺序不要容写错

③ linux Shell怎么查找指定文件,并进入该文件所在目录,目录有空格

1.使用绝对路径执行的shell文件(如/home/xxx/binfile)
直接使用dirname $0即可
2.对于使用相对路径执行的shell文件(如 ./xxx/binfile)
pwd与dirname结合使用;pwd获得的是执行当前shell文件时,用户所在的位置;dirname可以获得相对于那个位置的偏移:
例如某shell文件所在的位置是/home/user_name/work2/SNS3_server_im/Developing/trunk/im_capp/src/notify_serv/shell文件名

1 #!/bin/sh
2 pwd
3 echo `dirname $0`
执行后输出
/home/user_name/work2/SNS3_server_im/Developing/trunk/im_capp/src
./notify_serv

④ linux shell命令在哪个文件夹

假设你的文件夹都在/path/to/dir下,并且该目录下的文件夹都是你要处理的这种内日期格式的,简单脚本如下:容
#!/bin/sh
for
fd
in
`find
/path/to/dir
-maxdepth
1
-mindepth
1
-type
d`
do
dn=${fd##*/}
if
[
$dn
!=
$2
]
&&
[
$dn
-le
`date
+%y%m%d
-d
-$1`
]
then
rm
-rf
$fd
fi
done
调用方式:脚本名
参数1
参数2
参数1
-
#day或#month或#year;#为数字
参数2
-
要保留的文件夹名

⑤ linux shell 打开执行目录

1、pwd确认自己的路径。
2、将shell1.sh放到/bin

⑥ linux中Shell历史命令记录文件的路径是什么

路径/etc/bashrc。在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中。通过这个文件可以查询 shell 命令的执行历史。

代码如下:

HISTFILESIZE=4000

HISTSIZE=4000

HISTTIMEFORMAT='%F %T'

export HISTTIMEFORMAT

注意:

HISTFILESIZE 表示在 .bash_history 文件中保存命令的记录总数,默认值是 1000;

HISTSIZE 定义了 history 命令输出的记录总数;

HISTTIMEFORMAT 定义了时间显示格式,该格式与 date 命令后的 “+"%F %T"” 是一样的;

HISTTIMEFORMAT 作为 history 的时间变量将值传递给 history 命令。

(6)linuxshell目录文件扩展阅读:

显示历史命令

history 显示全部历史

history 数字 显示之前执行过的若干命令,例:history 2 显示执行过的上两条命令

使用上下箭头键也可以查看上一条根下一条命令,

3.运行历史命令

!! 运行上一条命令

!88 运行第88条命令

!88 /test 运行第88条命令并在命令后面加上/test

!?CF? 运行上一个包含CF字符串的命令

!ls 运行上一个ls命令

!ls:s/CF/l 运行上一个ls命令,其中把CF替换l

fc 编辑并运行上一个历史命令

fc 66 编辑并运行第66个历史命令

fc -e /usr/bin/vim 66 使用vim编辑第66个命令并运行

⑦ 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!

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

获取所有常规文件的文件名并打印出来的脚本listfile.sh如下

#!/bin/bash

dir="/*"
dir=$1$dir
for f in $dir
do
if [ -f $f ]
then
echo $f
fi
done

使用方法:
$ listfile.sh PATH

原理:
PATH参数是路径,将路径后加上“/*”,代表该目录下的所有文件和目录名,利用for循环比较每个文件是否是常规文件( -f比较运算符),若if表达式为真则打印

举例:
ls -l
total 36
-rwxrwxr-x 1 lipeng lipeng 48 Nov 29 20:08 aaa.sh
drwxrwxr-x 2 lipeng lipeng 4096 May 4 2015 byteorder
drwxrwxr-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.cpp
drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 16:42 matrix
drwxrwxr-x 5 lipeng lipeng 4096 Apr 28 2015 modbus
drwxrwxr-x 2 lipeng lipeng 4096 Sep 13 10:10 shtest
drwxrwxr-x 2 lipeng lipeng 4096 Sep 16 18:21 test

$ ./listfile.sh .
./aaa.sh
./listfile.sh
./main.cpp

⑨ linux shell 运行后没有那个文件或目录,需要怎么改

看不出来有问题,你是不是输入位置变量错了
要不你是试试每个mkdir 后面加 -p

⑩ Shell获取某目录下所有文件夹的名称

Shell获取某目录下所有文件夹的名称, 已知目录D:/temp,获取temp下所有文件夹的名称并输出,Shell怎么写?

方法有三,如下:

#!/bin/bash

#方法一

dir=$(ls-lD:/temp/|awk'/^d/{print睁罩粗$NF}')

foriin$dir

do

echo$i

done

#######

#方法二

fordirin$(lsD:/tmep/)

do

[-d$dir]&&echo$dir

done

##方法三

ls-lD:/temp/|awk'/^d/{print$NF}'

##其实同方法一,直接就可以显示不用for循环

php 获取目录下的所有文件夹名称

大致思路:
<?php
function traverseDir($dir){
if($dir_handle = @opendir($dir)){
while($filename = readdir($dir_handle)){
if($filename != "." && $filename != ".."){
$subFile = $dir.DIRECTORY_SEPARATOR.$filename; 要将源目录及子文件相连
if(is_dir($subFile)){ 若子文件是个目录
echo $filename.'<br>' 输出该目录名称
traverseDir($subFile); 递归找出下级目录名称
}
}
}
closedir($dir_handle);
}
}
$dirNames = traverseDir("d:/dos"); 测试某目录
?>

VBS获取当前目录下所有文件夹名字

呵呵,原来是团友啊我写了一个!Set ws=WScript.CreateObject("wscript.shell")
w=ws.CurrentDirectory
Set fso=WScript.CreateObject("scripting.filesystemobject")
Set fs=fso.GetFolder(w)
Set f=fs.SubFolders
For Each uu In f
t=t & uu.Path & vbcrlf
Next
MsgBox t

使用VB获得悉镇目录下闷谨所有文件夹名称的问题

用FSO对象模型不是很好么,这种代码看的好痛苦哇!

C# 获取Ftp某个目录下的所有文件(不要文件夹)

我在之前做过一个FTP的客户端工具
drw 文件夹
-rw 文件(有扩展名或无扩展名)
我是根据服务端返回的报文进行分析获取的列表。
给你一些代码片段:
/ <summary>
/ 获取指定目录下的文件和文件夹。
/ </summary>
/ <param name=path>要获取的目录</param>
/ <param name=WRMethods>要发送到FTP服务器的密令。</param>
/ <returns></returns>
public string[] GetFileList(string path, string WRMethods)从ftp服务器上获得文件列表
{
WebResponse response;
string[] downloadFiles;
int conut = 4;
StringBuilder result = new StringBuilder();
Connect(path);
if (FTPVariable.IsUseProxy_ftp)
{
reqFTP.Proxy = FtpProxy.GetFtpSelectProxy(FTPVariable.FtpCommand_transferProxyName);
}
reqFTP.ReadWriteTimeout = 12000;
如果不应销毁到服务器的连接,则为 true;否则为 false。默认值为 true。

reqFTP.Method = WRMethods;
try
{
response = (FtpWebResponse)reqFTP.GetResponse();
goto Ftp_lbl_03;
}
catch (WebException webex)
{
GetReply(webex.Message);
if (ReplyCode == 530) 未登录。
{
goto Ftp_lbl_04;
}
else if (ReplyCode == 550)
{
goto Ftp_lbl_04;
}
else
{
FtpManage.SetLog("获取列表超时,等候1秒后重试!");
goto Ftp_lbl_01;
}
}
Ftp_lbl_01:
try
{
FtpManage.SetLog("正在连接服务器 " + FtpRemoteHost);
response = GetRequest(path, WRMethods);
}
catch (WebException)
{
FtpManage.SetLog("获取列表超时,等候1秒后重试!");
downloadFiles = null;
System.Threading.Thread.Sleep(1000);
if (conut == 0)
{
goto Ftp_lbl_02;
}
conut--;
goto Ftp_lbl_01;
}
catch (Exception ex)
{
MSG.Show(ex.Message, Global.GetRS["msgTilteError"], MessageBoxButton.OK, MsgIco.Error);
FtpManage.SetLog("命令执行失败,原因:" + ex.Message);
downloadFiles = null;
return downloadFiles;
}
Ftp_lbl_03:
StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);中文文件名
string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append(" ");
line = reader.ReadLine();
}
if (result.Length == 0)
{
return null;
}
to remove the trailing ' '
result.Remove(result.ToString().LastIndexOf(' '), 1);
reader.Close();
response.Close();
FtpManage.SetLog("命令已成功执行");
return result.ToString().Split(' ');
Ftp_lbl_04:
FtpManage.SetLog(ReplyInfo);
return null;
Ftp_lbl_02:
FtpManage.SetLog("550 获取列表失败,无法连接远程服务器!");
FtpManage.ftpmanage.IsRefurbish = true;
return null;
}
/ <summary>
/ 获取指定目录下的文件和文件夹。
/ </summary>
/ <param name=path>要获取的目录</param>
/ <returns></returns>
public string[] GetFileList(string path)从ftp服务器上获得文件列表
{
return GetFileList(FTPVariable.FtpURLhead + FtpRemoteHost + "/" + path, WebRequestMethods.Ftp.ListDirectory);
}
/ <summary>
/ 获取指定目录下的文件和文件夹。
/ </summary>
/ <returns></returns>
public string[] GetFileList()从ftp服务器上获得文件列表
{
return GetFileList(FTPVariable.FtpURLhead + FtpRemoteHost + "/", WebRequestMethods.Ftp.ListDirectory);
}
/ <summary>
/ 获取目录和文件名,返回目录表。
/ </summary>
/ <param name=path>要获取的目录</param>
/ <returns></returns>
public string[] GetCatalog_FileList(string path)
{
string[] fountainhead = GetFileList(FTPVariable.FtpURLhead + FtpRemoteHost + "/" + path, WebRequestMethods.Ftp.ListDirectoryDetails);
string[] Catalog = null;
if (fountainhead == null)
{
return null;
}
Catalog = new string[fountainhead.Length];
for (int i = 3; i < fountainhead.Length; i++)
{
Catalog[i - 3] += fountainhead[i].Substring(55, fountainhead[i].Length - 55) + "&";FileName
Catalog[i - 3] += fountainhead[i].Substring(30, 12) + "&";FileSize
Catalog[i - 3] += fountainhead[i].Substring(42, 13) + "&";AmendDate
Catalog[i - 3] += fountainhead[i].Substring(0, 3) + "&";
}
return Catalog;
}

请问ASP中如何获取某个目录中所有文件夹的名称?

fso.GetFolder(path)

shell编程如何获取指定目录下所有文件的名称,例:目录:/root/dira/下的 001.DAT…009.DAT 9个文件名称?

你刚才不是问过了么?

vb 如何读取某目录下所有文件及子文件夹

查找某目录下所有 文件 及 子文件夹
试一试不用 FileSystemObject 对象,只用基本控件的代码。
'例子需控件:Command1,List1,List2,File1,Dir1,都采用默认属性。
'例如,查找 C: ,带 '** 的语可修改
Dim ctFind As Boolean
Private Sub Form_Load()
Me.Caption = "查找所有文件及文件夹"
Command1.Caption = "查找"
List2.Visible = False: File1.Visible = False: Dir1.Visible = False
Label1.Caption = "就绪"
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Private Sub Form_Resize()
Dim W As Long
On Error Resume Next
W = 720
List1.Move 0, 0, Me.ScaleWidth - W - 120, Me.ScaleHeight - 300
Command1.Move Me.ScaleWidth - W - 60, 300, W
Label1.Move 90, Me.ScaleHeight - 255, Screen.Width, 255
End Sub
Private Sub Command1_Click()
ctFind = Not ctFind
If ctFind Then
Command1.Caption = "取消"
Call FindDirFile("C:") '**查找 C: 下的所有文件和目录,或 C:Windows 等
Command1.Caption = "查找"
Else
Command1.Caption = "查找"
End If
End Sub
Private Sub FindDirFile(ByVal nPath As String)
Dim I As Long, nDir As String, Ci As Long
ctFind = True
List1.Clear: List2.Clear
If Right(nPath, 1) <> "" Then nPath = nPath & ""
List1.AddItem "查找 " & nPath: List2.AddItem nPath
File1.Pattern = "*"
File1.System = True: File1.Hidden = True: File1.ReadOnly = True
On Error GoTo Cuo
Dir1.Path = nPath
On Error GoTo 0
Do
If List2.ListCount = 0 Then Exit Do
nPath = List2.List(0)
List2.RemoveItem 0
Dir1.Path = nPath
For I = 0 To Dir1.ListCount - 1
GoSub ShowGe
nDir = Dir1.List(I)
If Right(nDir, 1) <> "" Then nDir = nDir & ""
List1.AddItem "■" & nDir
List2.AddItem nDir
Next
File1.Path = nPath
For I = 0 To File1.ListCount - 1
GoSub ShowGe
List1.AddItem " " & nPath & File1.List(I)
Next
Loop
Label1.Caption = "查找完毕,共找到 " & List1.ListCount & " 个条目"
ctFind = False
Exit Sub
Cuo:
List1.AddItem "起始目录不存在:" & nPath
ctFind = False
Exit Sub
ShowGe:
Ci = Ci + 1
If Ci < 99 Then Return
Ci = 0
Label1.Caption = "已找到 " & List1.ListCount & " 个:" & nPath
DoEvents
If ctFind Then Return
End Sub

linux shell脚本怎么获取目录下所有txt文件名称

执行如下三条命令即可:
(1)、$script myresultfile
(2)、$ls -al *.txt
(3)、$exit
此时,该目录下的所有 txt 文件名称就会以长格式保存在 myresultfile 文件中了。
然后你再使用 SHELL 编程的功能把那些无用的列去掉即可。

阅读全文

与linuxshell目录文件相关的资料

热点内容
苹果932拦截骚扰电话 浏览:765
盲盒开箱app有哪些 浏览:422
win10激活脚本之家 浏览:191
魔鬼作坊工具包 浏览:185
ae源文件下载 浏览:520
如何将照片内容转换成pdf文件 浏览:137
浙里办app如何更换手机号码 浏览:244
电子资料文件有哪些 浏览:241
猥琐猫表情教程 浏览:599
android音频文件格式 浏览:458
漫画脸app哪里可以下载 浏览:959
购买欢乐升级欢乐豆 浏览:282
学习智能机器人用什么编程最好 浏览:655
苹果手机如何管控app 浏览:633
mn文件夹 浏览:590
安卓平板通用刷机包下载 浏览:751
安卓获取内部存储路径 浏览:880
写代码两台显示器 浏览:327
unitypackage压缩文件 浏览:493
奕心安卓 浏览:563

友情链接