我想对chown目录中的所有隐藏文件执行一些操作(比如)。
我知道这.*是不是一个好主意,因为它也将查找当前.和父..目录(我知道,rm将无法进行操作.和..,但其他命令,包括chown和chmod,会很乐意生效)
但是我所有的隐藏文件都有不同的名字!
我应该如何在排除.和的同时搜索所有隐藏文件..?
我知道正则表达式只能用于字符和字符串,但有时我会在文件名中找到它们。我的问题是:正则表达式仅用于字符还是文件名?
$ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/access*
ls: cannot access /sites/servers/server_instance/logs/access*: No such file or directory
$ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/
total 594812
-rwxrwxrwx 1 abc abc 45 Mar 21 12:42 old.log
-rwxrwxrwx 1 abc abc 304537970 Mar 24 12:45 console.log
-rwxrwxrwx 1 abc abc 304537970 Mar 24 13:20 access_nginx.log
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么会发生这种情况?由于这个原因,我被困在脚本上。
我正在尝试让 Citrix 接收器在我的 Ubuntu 笔记本电脑上工作。我已经安装了 Citrix 接收器,但是当我尝试打开公司提供的 .ica 文件时,当我通过 Chrome 登录到我组织的 Citrix StoreFront 站点时,它退出并显示错误消息“无法连接到 0.0.02 - Windows 2016 桌面版。没有这样的文件或目录。请验证您的连接设置,然后重试”。在此之后,.ica 文件将被自动删除。
此外,如果我尝试直接在已安装的应用程序中输入我组织的 Citrix StoreFront 站点的地址,则会出现此错误;"无法使用此服务器地址添加您的帐户。请确保输入正确。无法建立到服务器的 SSL 连接,因为服务器的证书不受信任。 "
我总是必须切换到 Windows 才能远程工作。我尝试了互联网上存在的所有可用解决方案,包括First Link、Second Link。我想我的问题在某种程度上与我公司证书中的通配符有关。它颁发给* .myCompanyName但是站点地址是door.myCompanyName
我尝试了一切。我不想仅仅因为这个而切换到 Windows。请帮我。
我想用来find在一组受通配符限制的文件夹中查找文件,但路径名中有空格。
从命令行,这很容易。以下示例均有效。
find te*/my\ files/more -print
find te*/'my files'/more -print
find te*/my' 'files/more -print
Run Code Online (Sandbox Code Playgroud)
例如,这些将在terminal/my files/more和 中找到文件tepid/my files/more。
但是,我需要将其作为脚本的一部分;我需要的是这样的:
SEARCH='te*/my\ files/more'
find ${SEARCH} -print
Run Code Online (Sandbox Code Playgroud)
不幸的是,无论我做什么,我似乎都无法find在脚本中的命令中混合使用通配符和空格。上面的示例返回以下错误(注意反斜杠的意外加倍):
find: ‘te*/my\\’: No such file or directory
find: ‘files/more’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
尝试使用引号也会失败。
SEARCH="te*/'my files'/more"
find ${SEARCH} -print
Run Code Online (Sandbox Code Playgroud)
这将返回以下错误,忽略引号的含义:
find: ‘te*/'my’: No such file or directory
find: ‘files'/more’: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这里再举一个例子。
SEARCH='te*/my files/more'
find ${SEARCH} -print
Run Code Online (Sandbox Code Playgroud)
正如预期的那样:
find: ‘te*/my’: No such file …Run Code Online (Sandbox Code Playgroud) 我知道通配符在运行命令之前被 shell 扩展,它们是 shell 的一个特性。通配符也适用于那些可以接受许多参数的命令。在find . -name *.rb 我们若在当前目录多个文件find会给我们一个错误,因为发现不能接受多个参数,解决这个是方法:
find . -name "*.rb"
find . -name '*.rb'
find . -name \*.rb
Run Code Online (Sandbox Code Playgroud)
我们避开星号并防止 shell 扩展,但通配符是 shell 的一个特性;当我们转义 asterisk shell 不知道它的含义时,它应该找到一个名为 的文件*.rb,那么在这种情况下星号是如何扩展的?
我想排除以下文件类型:
到目前为止,我有这个似乎不起作用,我收到一条错误消息,说“命令行不正确”。
7z e "-x!*.epub" "-x!*.pdf" "-x!*.html" "-x!*.azw3" "-x!*.mobi" "-x!*.txt" "-x!*.HTML" "-x!*.opf" *
Run Code Online (Sandbox Code Playgroud)
我也试过上面没有双引号的命令。
我使用这里的信息(对于 Windows)创建了上述命令,但它似乎在 Linux 下不起作用。
有没有写一个简单的方法:
wc -l foo?.txt foo??.txt?
由于在我的情况下我有(最多)两位数字,我尝试使用范围规范,wc -l foo[1-99].txt但这最终只显示了 1 到 9(而不是 99)之间的结果。但这是一个(非工作)黑客,我真的需要像wc -l foo[?,??].txt.
我希望能够写入* 我的脚本,并保持*原样(即,没有扩展)。
Bash 会尝试用匹配此模式的本地文件替换它,如果此模式不存在,bash 将不加修改地传递星号。
我不想逃。我知道这是可能的( *, '*' )。
例如
myscript --arg * --- will pass local files to the script
myscript --arg=* --- will pass "--arg=*", since there are no filenames starting with "--arg=<...>"
Run Code Online (Sandbox Code Playgroud)
我可以告诉 bash 在某些情况下跳过通配符解释吗?例如,以myscript?开头的命令
只是询问如何删除这些文件(以下是示例)。我试过了rm -rf '*.upload'。但它们不会被删除。请帮忙。感谢分享!
样本
-4776d77b-15138be20a5--7fe5564294743529948392.upload
-4776d77b-15138be20a5--7fe42113893139620106164.upload
-4776d77b-15138be20a5--7fe31607666159788442489.upload
-4776d77b-15138be20a5--7fe25373299435776669057.upload
-4776d77b-15138be20a5--7fe1207318424670693308.upload
-4776d77b-15138be20a5--7fe06041124025289424195.upload
-4776d77b-15138be20a5--7fdf746591155901247528.upload
-4776d77b-15138be20a5--7fde2651489576923158462.upload
-4776d77b-15138be20a5--7fdd2531096796717880290.upload
-4776d77b-15138be20a5--7fdc2641652764933395437.upload
-4776d77b-15138be20a5--7fdb5818566181985823473.upload
-4776d77b-15138be20a5--7fda2806206050645309611.upload
-4776d77b-15138be20a5--7fd91895678442042719781.upload
-4776d77b-15138be20a5--7fd8342875353051911187.upload
-4776d77b-15138be20a5--7fd73596962611777373454.upload
-4776d77b-15138be20a5--7fd67990174325830266540.upload
-4776d77b-15138be20a5--7fd58525749935970194788.upload
-4776d77b-15138be20a5--7fd42881375718133436679.upload
-4776d77b-15138be20a5--7fd31679085579889731530.upload
-4776d77b-15138be20a5--7fd26119620848853649755.upload
-4776d77b-15138be20a5--7fd12842363350553049954.upload
-4776d77b-15138be20a5--7fd04812945245481337635.upload
-4776d77b-15138be20a5--7fcf9164012740031565326.upload
-4776d77b-15138be20a5--7fce4881094462944077013.upload
-4776d77b-15138be20a5--7fcd1734598108195804584.upload
-4776d77b-15138be20a5--7fcc4928484618899140497.upload
Run Code Online (Sandbox Code Playgroud)