小编Raf*_*ffa的帖子

三月最后一个星期日的 touch -t 错误

如果日期代码表示任何一年 3 月最后一个星期日的 2:00:00AM 到 2:59:59AM,touch -t 会给我“无效的日期格式”错误(我已经检查过 2023,2014,2016,2018 )。核心实用程序中这种奇怪的现象让我大吃一惊。这是一些已知的错误吗?有解决方法吗?

\n

例子:

\n
$ touch -t 201603270159.59 myfile.txt #1:59AM works\n$ touch -t 202303260200.00 myfile.txt #2:00AM fails\ntouch: invalid date format \xe2\x80\x98202303260200.00\xe2\x80\x99\n$ touch -t 201603270259.59 myfile.txt #2:59AM fails\ntouch: invalid date format \xe2\x80\x98201603270259.59\xe2\x80\x99\n$ touch -t 201603270300.00 myfile.txt #3:00AM works\n$ touch -t 202303270200.00 myfile.txt #2:00AM the next day works\n
Run Code Online (Sandbox Code Playgroud)\n

(这些内容为 YYYYMMDDHHMM.SS)。

\n

我接触了 5000 个文件的集合,这些文件的时间戳可追溯到 12 年前。这是触摸失败的日期时间戳列表。问题日期始终是三月的最后一个星期日

\n
touch -t 201403300248.57 fileA.txt\ntouch -t 201403300251.21 fileB.txt\ntouch -t 201403300253.03 fileC.txt\ntouch -t 201603270252.42 fileD.txt\ntouch -t 201603270234.43 …
Run Code Online (Sandbox Code Playgroud)

command-line bug-reporting date coreutils

8
推荐指数
1
解决办法
784
查看次数

Ubuntu 18.04:除非我在输出之间切换,否则音频不起作用

在我完全更新的 Ubuntu 18.04.3 系统上,除非我在输出之间切换,否则音频不起作用。当我启动我的 PC 时,默认情况下已经选择了正确的输出(立体声扬声器),但没有来自 Chromium、Firefox、VLC 或任何其他程序的音频。但是,GNOME 扬声器测试有效。我可以从那里听到“左前”和“右前”,但听不到其他程序的音频。为了解决这个问题,我可以简单地切换到另一个音频输出(例如 HDMI 输出),然后切换回立体声扬声器,音频就会神奇地工作。知道为什么吗?这没什么大不了的,因为在输出之间切换需要几秒钟的时间,但是每次重新启动后都这样做有点烦人。

sound pulseaudio output 18.04

7
推荐指数
1
解决办法
1万
查看次数

更新到 20.04“虚拟输出”后没有声音

从 19.10 更新到 20.04 后,我失去了声音。

我的声音驱动程序似乎已被虚拟输出替换,请参见下文

在此处输入图片说明

没有其他输出设备可用。我已经重新启动,问题仍然存在。

updates sound pulseaudio 20.04

7
推荐指数
3
解决办法
3125
查看次数

NTFS 中带冒号的文件名

我一直在使用字符“:”和“|” 作为文件名的一部分,在 Ubuntu 18.04 中在 NTFS 外部驱动器中创建文件没有任何问题。上周我安装了 Ubuntu 22.04,但无法将名称包含这些字符的文件写入我的 NTFS 驱动器。返回的错误是“无效参数”。我做了一些研究,但找不到与这个明显的巨大变化相关的任何内容。所以我的问题是:有人知道这个吗?是永久性的改变吗?只是一个错误吗?我应该放弃使用 NTFS 吗?感谢您的任何建议。

ntfs 22.04

7
推荐指数
1
解决办法
2086
查看次数

通过用下划线替换逗号和空格来更改多个文件名

我的文件格式为

Country, City S1.txt
Run Code Online (Sandbox Code Playgroud)

例如

USA, Los Angeles S1.txt
USA, San Francisco S3.txt
UK, Glouchester S4.txt
Argentina, Buenos Aires S7.txt
Run Code Online (Sandbox Code Playgroud)

我希望将它们更改为

Country_City_S1.txt
Run Code Online (Sandbox Code Playgroud)

例如

USA_Los_Angeles_S1.txt
USA_San_Franciso_S3.txt
UK_Glouchester_S4.txt
Argentina_Buenos_Aires_S7.txt
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗,最好使用mv命令吗?谢谢。

files

7
推荐指数
2
解决办法
1375
查看次数

scp:如何在传输文件时更改文件夹和文件的所有权

当我将包含文件的文件夹从用户名 srv1 的 srv1 传输到用户名 srv2 的 srv2 时,传输的文件夹及其在 srv2 上包含的文件将保留所有权 srv1

scp -r /var/www/vhosts/srv1.com/httpdocs/profile_image root@777.777.777.77:/var/www/vhosts/srv2.com/httpdocs
Run Code Online (Sandbox Code Playgroud)

有没有办法在传输时立即将目的地传输的文件夹/文件的所有者更改为 srv2,而不是稍后再执行?

ssh permissions command-line ownership

7
推荐指数
1
解决办法
1539
查看次数

如何在 Bash 中测试名称/字符串是否可执行

在 Bash 上,我们如何测试名称字符串是否是可执行文件,因为尝试过它不起作用:

$ [[ -x cp ]] &&echo YES
$
$ [[ -x ls ]] &&echo YES
Run Code Online (Sandbox Code Playgroud)

努力尝试不会是正确的方法:

$ >/dev/null type ls && echo YES
YES

$ >/dev/null type -fat && echo YES
YES
Run Code Online (Sandbox Code Playgroud)

这是一次非常失败的失败,感谢之前的帮助

testing command-line bash

7
推荐指数
3
解决办法
1421
查看次数

我应该将函数放在 .bashrc、.bash_aliases 或 .profile 中吗

我已经读过这篇关于在哪里放置别名的帖子。

现在,假设我的自定义命令非常复杂(在输入中接受参数,由几个相继运行的命令组成,为了清楚起见,我想将其保留为多行,涉及引号、双引号等),所以我想将它定义为一个函数,例如

sshdev_system_loop () {
        while true; do
          echo "[$(date +'%Y-%m-%d %H:%M:%S')] Trying to log into ststem $2 as user $1 ."
          timeout 10 ssh $1@$2
        done
}
Run Code Online (Sandbox Code Playgroud)

我应该把它放在.bash_aliases或 的末尾.bashrc或 中.profile吗?

一方面,我不想把它放进去,.bash_aliases因为它会“破坏”列表

alias alias_name='command/list of commands'
Run Code Online (Sandbox Code Playgroud)

另一方面,.bashrc它看起来像是操作系统管理的文件,所以我不想向其中添加内容。

那么在 Ubuntu 中将功能添加为自定义命令的最佳实践是什么?

command-line bash alias functions bashrc

7
推荐指数
2
解决办法
973
查看次数

bash 内置“read”在管道“|”之后 不等待用户输入

当我卷曲存储在网络服务器上的脚本时,它会无休止地回显我编码的提示,直到我发送 ^c。我所做的只是一个简单的curl https://server/test.sh | bash。这是通过管道运行的代码

while true
do
        read -r -p "[Y/n] " input

        case $input in
            [yY][eE][sS]|[yY])
                        echo "y"
                        break
                        ;;
            [nN][oO]|[nN])
                        echo "n"
                        break
                        ;;
            *)
                echo "y/n"
                ;;
        esac
done
Run Code Online (Sandbox Code Playgroud)

command-line bash scripts pipe

6
推荐指数
1
解决办法
1284
查看次数

使用 find 命令删除目录

我正在使用 Linux 命令从服务器中删除目录。

find . ! -name . -type d -mtime +30 -print -delete
Run Code Online (Sandbox Code Playgroud)

但目录没有删除。附上图片,请参考。我正在使用删除深度 rm -rf 文件夹。但有一个性能/耗时的过程。但我可以使用-delete命令来代替它。

查找命令结果

command-line find execute-command 20.04

6
推荐指数
1
解决办法
1402
查看次数