我正在玩扩展,我注意到一个奇怪的行为。我试着做:
echo ./*.txt
Run Code Online (Sandbox Code Playgroud)
我的当前目录中没有任何 .txt 文件。我得到的输出是:
./*.txt
Run Code Online (Sandbox Code Playgroud)
我只是好奇:我为什么会得到这个?我原以为不会得到任何输出。
PS:当我有一个.txt
文件时,扩展被正确解释。换句话说,假设我有一个文件,smthn.txt
,回声实际上是 echo current_directory/smthn.txt
。
我正在运行以下命令以查找与“flash_drive_data”无关的所有文件/目录:
find . -not -path './flash_drive_data*' | grep "./*flash*"
Run Code Online (Sandbox Code Playgroud)
我尝试过的一些事情让我感到困惑:
1. 当我运行上面的命令时,我得到了一些“部分”命中(即它们与*flash*
模式不完全匹配。例如:
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/cli.pyi
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/signals.pyi
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/templating.pyi
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/sessions.pyi
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/json
./.local/lib/python3.7/site-packages/jedi/third_party/typeshed/third_party/2and3/flask/json/tag.pyi
Run Code Online (Sandbox Code Playgroud)
所述3/flas
在端部被突出显示。
2.当我grep "*flash*"
用 just替换时grep "*"
,我希望找到 find 返回的所有文件,但我没有。为什么?然后,当我这样做时,grep "**"
我相信我得到了所有文件(或者至少我认为我得到了)。再说一遍,这是为什么?
3. 最后,我上面所做的目的是确保当我运行时find . -not -path './flash_drive_data*'
我没有得到任何与 flash_drive_data 相关的信息。似乎我做到了(正如我上面解释的那样,grep 有一些意想不到的行为)。但是,当我运行时:
find . -not -path './flash_drive_data*' -exec tar cfv home.tar.bz '{}' +
我得到的输出包括:
./flash_drive_data/index2/ask-sdk-core/dist/dispatcher/error/handler/
Run Code Online (Sandbox Code Playgroud)
所以 flash_drive_data 文件被包括在内。
我想运行wc -l
并在算术展开中使用结果。换句话说,我想做这样的事情:
wc -l (now somehow pipe/pass the result of this to) $((2 + result of wc command))
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
在我的~/Pictures
目录中,我有多个名为“ Screenshot from YYYY-MM-DD hh-mm-ss.png
”的文件,以及其他文件。我想保留所有非屏幕截图的文件,并且根据它们的最新情况仅保留指定数量的屏幕截图图片。我基本上只想保留最后 3 张最新的屏幕截图,并删除所有其余的。
到目前为止,这是我所拥有的:
ls | grep "Screenshot *" | sort -r | wc -l
Run Code Online (Sandbox Code Playgroud)
然后我想做的是从 中减去 3 wc -l
,这样我就可以用来tail
列出所有不是前 3 个的文件,然后删除它们。
在 GNU 手册中tar
,有以下示例表明选项的顺序很重要:
tar -cfv collection.tar blues folk jazz
Run Code Online (Sandbox Code Playgroud)
在这种情况下,因为v
放在 之后f
,那么 tar 存档将被命名为“v”,并且如果它存在于当前目录中,tar
将尝试添加collection.tar
到存档中。但是,如果我-
从一开始就省略了,则该命令会按我们希望的那样工作,尽管v
放在f
. 为什么?
我使用其中一个 youtube 到 mp3 转换器下载了音乐,我认为他们用一些广告软件感染了我的机器。我每隔 30 分钟到 1 小时左右就会在屏幕顶部弹出一个弹出窗口。我怎样才能找出导致这种情况的原因并解决它?
PS:我有 Ubuntu 19.04。另外,我尝试删除歌曲文件,但这没有帮助。我使用https://ytmp3.cc/en1/(Youtube到 MP3 转换器)下载了这首歌
我正在尝试编辑该文件/proc/sys/vm/overcommit_memory
,但即使我sudo
通过使用或切换到根用户sudo -i
并尝试使用该帐户进行编辑,权限也会被拒绝。我怎样才能让它发挥作用?
我正在尝试安装nohup
命令。当我运行时,sudo apt-get install nohup
我得到:
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package nohup
Run Code Online (Sandbox Code Playgroud)
这里有什么问题?