直到最近,我才在主目录中看到我的主目录。这是我需要担心的事情吗?我不知道这是否是个问题。
具有以下简单结构:
project
main
aaa
aaa
test
ddd
ddd
pom.xml <--- unique regular file
如果当前目录是project
并且如果执行则ls
出现命令
main pom.xml test
到这里一切都OK了。现在,根据man ls
有关d
选项存在:
-d, --directory
list directories themselves, not their contents
因此,执行时ls -d
会出现命令:
.
为什么?老实说,我只期望目录而不是常规文件。例如
main test
问题
d
该命令的选项到底如何ls
工作?
额外问题:
- 它们的内容到底意味着什么?是关于每个目录的内部内容吗?
如何查找两个磁盘结构之间丢失的目录?
- 假设磁盘 A 有 dir
A/
,B/
,C/
,D/
。(较新的副本) - 假设磁盘 B 有 dir
A/
,B/
,D/
,E/
。(旧副本)
我想找出与旧副本相比,新副本中缺少哪些目录。
结果:“Dir E”。
我怎样才能做到这一点?我不想要任何有关文件的报告。
这可以仅创建特定目标中缺少的目录:
find -type d -exec mkdir -p "/mnt/pics/Albums/{}" \;
更新:我的问题中建议的文章是关于内容而不是文件夹。此外,没有提出明确的解决方案作为“diff -rq path1 path2”的答案。
您好,我想知道如何根据每个子文件夹中最旧的文件扫描和更改所有子文件夹的最后修改日期。
Ubuntu 文件夹结构示例:
home/incoming/media/Something.something.1234/
或者
/Soemthing Soemthing 1234/
这意味着有带点和不带点的文件夹。对于一些带点和一些不带点的文件也是如此。
文件主要是 MKV 媒体文件,也可能是一些 mp4。
此外,脚本还应该跳过媒体文件夹根目录中的所有 mkv 或 mp4 文件,因为它们没有任何子文件夹。
今天,我无意中发现以下目录是/
我自己拥有的,而不是root:
- /家
- /丢失+找到
- /媒体
- /mnt
- /选择
- /折断
- /srv
- /交换文件
- /var
我不知道这是怎么发生的(我知道这听起来很愚蠢)。除了明显的例外之外,其中一些/home
应该由 root 拥有,这似乎是合乎逻辑的。如果有,是哪些?
另一方面,系统(Lubuntu 20.04 x64)运行正常。安装的软件也是如此,我目前没有遇到任何麻烦。难道要记住这句话“如果它没有坏,就不要修理它”吗?
我有当前的代码:
for fname in *.*; do
prefix=${fname%.*}
[ ! -f "$fname" ] || [ -f "$prefix.zip" ] && continue
zip "$prefix" "$prefix".*
done
这主要是我想要的,但我必须删除原始文件。是否可以进行修改以在压缩后删除原始文件?如果可能的话,如何在目录或其子目录上执行此操作?
当前文件结构如下:
-rootDir
|- Dir1
|- file1.jpg
|- file1.png
|- file1.mp3
|- Dir2
|- file2.jpg
|- file2.png
|- file2.mp3
我的目标是以下结构:
-rootDir
|- Dir1
|- file1.zip
|- Dir2
|- file2.zip
如前所述,上面的代码在单个目录中执行时工作正常。
我现在有300个子目录,如果我能获得上述代码的修改版本并在根目录级别执行,并整理剩余的文件,那对我会有很大的帮助。
testingfilesizecheck.sh: line 6: /media/doctor/123A123E1A123456/Users/Tim/Downloads/PokemonRed/Binary House/Final Structure Directory/Category/*
我正在使用命令for f in "/media/doctor/123A123E1A123456/Users/Tim/Downloads/PokemonRed/Binary House/Final Structure Directory/Category/*"
如果我对此非常具体并说出来,"/media/doctor/123A123E1A123456/Users/Tim/Downloads/PokemonRed/Binary House/Final Structure Directory/Category/ABRA.bin"
那么它就会起作用。
我是 linux (Ubuntu) 和 bash 的新手,我正在努力使用 google-fu 来诊断这个问题。我能找到的每个示例站点都建议我使用通配符所做的工作应该有效,但是他们将示例保存在与终端/bash 脚本正在积极工作的同一目录中。
在发表这篇文章之前,我确实使用 ls 设计了一个解决方法,感觉非常迂回,因为我在文件夹中列出了我的文件列表,并且有点“手动”,而不是使用 for 循环作为简洁的命令。所以我正在寻找学术上的答案,为什么通配符在这种情况下不会扩展。
编辑:我尝试了将星号放在双引号之外的建议。但它也没有用。以下是我目前的回复:
这是我的终端在输入一行“bash testingfilesizecheck.sh”并按下回车后的复制粘贴:
doctor@doctor-X570-AORUS-ELITE:~/Documents$ bash testingfilesizecheck.sh
/media/doctor/123A123E1A123456/Users/Tim/Downloads/PokemonRed/Binary House/Final Structure Directory/Category/*
testingfilesizecheck.sh: line 24: /media/doctor/123A123E1A123456/Users/Tim/Downloads/PokemonRed/Binary House/Final Structure Directory/Category/*: No such file or directory
第 24 行来自注释掉我在 testinfilesizecheck.sh 脚本中所做的所有其他尝试。这是该脚本减去注释掉的行。
#!/bin/bash
for f in "/media/doctor/123A123E1A123456/Users/Tim/Downloads/PokemonRed/Binary House/Final Structure Directory/Category/"*
do
echo "$f"
actualsize=$(wc -c < "$f")
done
echo $actualsize
同样,/media/doctor/123A123E1A123456/Users/Tim/Downloads/PokemonRed/Binary House/Final Structure Directory/Category/ABRA.bin 中有一个文件
但通配符并未扩展以接受 ABRA.bin。在这两种变体中,它只是一个文字星号。我想,是的,基于我对其他编程语言的初步理解,星号作为一个变量是有道理的,它不能在带引号的字符串中。但当然它对我不起作用。
我第一次将用户文件从旧系统移动到新系统。我的目标是使用 SCP 的简单语法scp -r source destination
。我尝试使用以下命令首先复制文件:
scp -r [email protected]:/home/someuser/* .
回想起来,根据过去的经验,这复制了所有没有前导.
. 在我试图解决这个问题时,我这样做了:
scp -r [email protected]:/home/someuser/.* .
表示以 a 开头的任何内容的通配符.
。显然(为什么我要问这个问题)它没有做我想要的。观察到的结果是,它将 解释.
为在路径中向上移动了一个级别,而是开始复制/home/*
,而且(我认为)将文件从我的工作目录而不是工作目录本身放在了上一级。
我对执行第二个命令的解释是否正确?我认为自从我进入以来它很容易修复~/backup
,所以升级了一个级别~
。我只是rm -rf ~/someuser
在中断命令之前复制的每个用户名。这些someuser
目录应该在~/backup
从那以后,我学会了如何通过仅指定目录而不是目录中包含的文件来复制我想要的文件。