相关疑难解决方法(0)

如何将目录移动到同名目录中?

我有一个foo包含多个文件的目录:

.
??? foo
    ??? a.txt
    ??? b.txt
Run Code Online (Sandbox Code Playgroud)

我想将它移动到一个同名的目录中:

.
??? foo
    ??? foo
        ??? a.txt
        ??? b.txt
Run Code Online (Sandbox Code Playgroud)

我目前正在创建一个临时目录bar,然后foo进入bar并重命名barfoo

mkdir bar
mv foo bar
mv bar foo
Run Code Online (Sandbox Code Playgroud)

但这感觉有点麻烦,我必须为bar尚未使用的名称选择一个名称。

有没有更优雅或更直接的方法来实现这一目标?如果这很重要,我在 macOS 上。

directory mv macos

32
推荐指数
6
解决办法
8041
查看次数

了解主配置文件位置:~/、~/.config/ 和 ~/.local/share/

我的主目录中有许多隐藏的配置文件:

  • 其中一些在~/(例如~/.cinnamon
  • 其中一些在~/.config/(例如~/.config/cinnamon-session
  • 其中一些在~/.local/share/(例如~/.local/share/cinnamon-session

家庭配置文件所在的逻辑是什么?

a) 这三个地方的隐藏文件有什么区别?

b)在这种情况下,“本地”究竟是什么意思,vs config,vs home?

c) 在主目录中,是否还有其他重要的多个应用程序使用的常用配置目录?


Debian 8.6 肉桂 2.2.16

configuration home

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

为什么 POSIX 中没有 mktemp 命令?

shell 脚本需要做的最常见的事情之一是创建和操作临时文件。这样做安全是一种痛苦,因为你需要避免名称冲突,避免竞争条件,确保该文件具有正确的权限,等等(参见GNU Coreutils的手册琐碎的博客文章这方面的迹象对这些更详细的讨论问题。)大多数类 Unix 操作系统通过提供mktemp处理所有这些问题的命令来解决这个问题。但是,这些mktemp命令的语法和语义没有标准化。如果您真的想安全可移植地创建临时文件,则必须求助于丑陋的杂物,例如以下内容:

tmpfile=$(
  echo 'mkstemp(template)' |
    m4 -D template="${TMPDIR:-/tmp}/baseXXXXXX"
) || exit
Run Code Online (Sandbox Code Playgroud)

(此变通方法利用了宏处理器m4是 POSIX 的一部分这一事实,并m4公开了mkstemp()同样由 ​​POSIX 定义的 C 标准库函数。)

鉴于这一切,为什么 POSIX 没有标准化一个mktemp命令,保证它的存在和至少它行为的某些方面?这是 POSIX 委员会的一个明显疏忽,还是委员会mktemp实际上已经讨论了标准化的想法并因某些技术或其他原因被拒绝?

shell-script posix mktemp

18
推荐指数
2
解决办法
1320
查看次数

获取临时路径的通用方法?

我听说过$TEMPand $TMP,但我认为它们不是每个发行版的标准。

据我所知,获取临时目录的最佳方法是/tmp,是否有任何发行版无法使用该路径?

tmp

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

是否有海绵的标准替代品来将文件导入自身?

我经常想做这样的事情:

 cat file | command > file
Run Code Online (Sandbox Code Playgroud)

(这显然不起作用)。我见过的唯一解决方案是sponge,即

 cat file | command | sponge file
Run Code Online (Sandbox Code Playgroud)

不幸的是,sponge我不可用(我也不能安装它或任何其他包)。

有没有更标准的快速方法来做到这一点,而不必每次都将其分解为多个命令(管道到临时文件,管道返回原始文件,删除临时文件)?tee例如,我尝试过,它似乎有效,但它是一致/安全的解决方案吗?

pipe tee

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

标签 统计

configuration ×1

directory ×1

home ×1

macos ×1

mktemp ×1

mv ×1

pipe ×1

posix ×1

shell-script ×1

tee ×1

tmp ×1