关于linux bash脚本中的for循环,我有一个小问题。
我有一个包含10000个文件的文件夹。我编写了for循环来列出10000中的100个文件。
For a in ~/Desktop/folder/*.txt
Do
Echo $a
Done
但是,我需要列出文件夹中最大的100个文件,而不是根据字母表列出前100个文件。
我试图计数文件夹中的所有.txt文件,问题是主文件夹中有多个文件夹,每个文件夹中都有txt文件,所以我总共要计算txt文件的数量。到目前为止,我一直试图建立这样的解决方案,但这当然是错误的:
#!/bin/bash
counter=0
for i in $(ls /Da) ; do
for j in $(ls i) ; do
$counter=$counter+1
done
done
echo $counter
我得到的错误是:我无法进入.
问题是我不知道如何构建内部for循环,因为它依赖于外部for循环(模式) ?
最近,我开始在Linux (新手)中使用shell脚本。我想知道循环中从一个文件夹到另一个文件夹的命令或过程?我的意思是如何在执行循环中调用不同的文件夹?目前,我正在重命名所有的文件夹没有的,例如,1,2,3.在循环中使用这些。我知道这不是使用脚本的好方法。
set k=1
while ( $k <= 17)
## initial path set
cd /home/naren/Documents/BASELINE_INSP/FreeSurfer/$k/RSFC
每次更新“k”时,移动到不同的文件夹,因为我将所有文件夹命名为no's。
我必须在子目录中安装一些.deb包,即/opt/corbos-linux/2.4.4/sysroots/x86_64-pokysdk-linux/。此文件夹应用作新的根目录。我试着安装这些软件包
dpkg --root=/opt/corbos-linux/2.4.4/sysroots/x86_64-pokysdk-linux/ -i *.deb
但是这个错误出现了:
dpkg: error: unable to access dpkg status area: No such file or directory
而如果我给
dpkg --instdir=/opt/corbos-linux/2.
我正在为我的一个程序写一个函数,它需要搜索一些文件夹,直到我们找到一个叫"userfiles“的文件夹,然后我们压缩这个文件夹,给出它所在的文件夹的文件名。下面的方法是最好的方法吗?
compress(){
NAME=$(cat $USER_HOME/server.txt | sed -e "s/ //g")
USERS=/var/www/home/user/area/*/*/*/
IDS=${PWD##*/}
# Apache Logs
tar -zcvf logs-$NAME.tar.gz /var/log/apache2
# User Logs
for i
首先,这是我在这里的第一篇文章,我必须指明我是一个完全的Linux新手。
我们最近为办公室购买了一个QNAP NAS盒子,在这个盒子上我们有大量的数据,这些数据是从一台旧的Mac XServe机器上复制过来的。许多文件和文件夹最初在名称中有正斜杠(HFS+从一开始就不应该允许这样做),当复制到NAS时,它们都被冒号取代。
我现在想将所有冒号重命名为下划线,并在此处的另一个线程中找到以下命令:
但是,这个机器上的Linux不能理解rename命令,所以我不得不使用mv。我已经尝试使用下面的代码,但这只适用于当前文件夹中的文件,有没有方法可以将其更改为包括所有子文件夹?
for f in *.*;