相关疑难解决方法(0)

壳ksh93死了吗?

在 2013-01-10 Glenn Fowler 将此发布到ast-users 邮件列表

正如在 AST 和 UWIN 列表中多次指出的那样,AT&T 对 OpenSouce 软件的支持很少,这就是为什么我们很少有人参与我们相当大的 AST 软件集合。尽管如此kshnmakevczipUWIN和其他 AST 工具仍在几个 AT&T 项目中继续使用。

事实证明,软件并不是唯一缺乏支持的东西:dgk (David Korn)(AT&T 研究员,服务 36 年)和 gsf (Glenn Fowler)(AT&T 研究员,服务 29 年)都已终止,10 月生效10. 我们的第三个主要合作伙伴 Phong Vo(AT&T 研究员,服务 32 年)几个月前离开了 Google。UWIN 维护者 Jeff Fellin 仍在 AT&T 工作,并为一些关键操作提供 UWIN 支持。

dgk 和 gsf 都将继续在 AST 软件上工作,并且实际上可能有更多的时间(至少在短期内)专注于它。

下载站点和邮件组将至少在接下来的几个月内保留在 AT&T 中。我们的 AT&T 同事 dr.ek,AST 用户和错误检测器,将维护该站点。我们已经保护了 astopen.org 域,并且正在研究非 AT&T 托管选项,包括带有错误跟踪功能的存储库。

改变的过程需要时间;用户社区的耐心将不胜感激。在一个基本上稳定了近 30 年的环境中工作后,有 …

development ksh history

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

unix,以“/”和“//”开头的路径之间的区别

在 unix/linux 中,路径中任意数量的连续正斜杠通常等效于单个正斜杠。例如。

$ cd /home/shum
$ pwd
/home/shum
$ cd /home//shum
$ pwd
/home/shum
$ cd /home///shum
$ pwd
/home/shum
Run Code Online (Sandbox Code Playgroud)

然而由于某种原因,绝对路径开头的两个正斜杠被特殊对待。例如。

$ cd ////home
$ pwd
/home
$ cd ///
$ pwd
/
$ cd //
$ pwd
//
$ cd home//shum
$ pwd
//home/shum
Run Code Online (Sandbox Code Playgroud)

补丁中任何其他地方的任何其他数量的连续正斜杠都会被截断,但开头的两个将保留,即使您随后在相对于它的文件系统中导航。

为什么是这样?/... 和 //... 之间有什么区别吗?

linux bash slash filenames

57
推荐指数
3
解决办法
2万
查看次数

为什么“/”包含“..”?

上面没有目录/,那么里面有什么意义..呢?

filesystems directory-structure

24
推荐指数
2
解决办法
3029
查看次数

查找目录树中的所有绝对链接

我如何(递归地)检测目录中以绝对方式而不是相对方式标识其目标的所有符号链接?

由于在移动整个目录树时这些链接很可能会中断,因此我希望有一种识别它们的方法。

如果移动目录树(如果它们碰巧指向目录树的根目录之外),即使是相对链接也可能会中断,但我认为这个问题已解决。

symlink

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

将路径中每次出现的(可能重叠的)“/./”替换为“/”是否“安全”?

在符合 POSIX 标准的系统中,是否出现(可能重叠)/./已被替换的路径/保证通向与原始路径相同的目标?

例子:

#!/bin/bash

shopt -s extglob

some_command -- "${@//\/+(.\/)//}"
Run Code Online (Sandbox Code Playgroud)

更新:

鉴于评论,它不等同,所以我将更新问题:

在符合 POSIX 标准的系统中,是否出现的路径(可能重叠)/././已被替换为/./保证导致与原始路径相同的目标?

shell path

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

点正斜杠正斜杠是什么意思 (.//)?

我正在使用这样的命令查询服务器:

find ./ -type f -name 'filename"
Run Code Online (Sandbox Code Playgroud)

我有很多文件开头

.//library 
Run Code Online (Sandbox Code Playgroud)

或者

.//user
Run Code Online (Sandbox Code Playgroud)

这些东西是什么意思?

command-line slash find filenames

6
推荐指数
2
解决办法
3456
查看次数

官方说明 UNC(通用命名约定)

任何人都可以指向定义通用命名约定 (UNC) 的手册页或规范吗?我正在寻找这个想法的原始来源

terminology

4
推荐指数
2
解决办法
1710
查看次数

检查shell变量是否包含绝对路径

我想检查 shell 变量是否包含绝对路径。

我不在乎路径是否存在——如果它不存在,我将创建它——但我确实想确保我正在处理一个绝对路径名。

我的代码如下所示:

myfunction() {
  [ magic test to see if "$1" is an absolute path ] || return 1
  mkdir -p "$(dirname "$1")" || return 1
  commands >> "$1"
}
Run Code Online (Sandbox Code Playgroud)

或者,要验证的绝对路径是目录的用例:

anotherfunction() {
  [ same magic test ] || return 1
  mkdir -p "$1"
  dostuff >> "$1/somefile"
}
Run Code Online (Sandbox Code Playgroud)

如果是这样,awk我会像这样进行检查:myvar ~ /^\//

还有必须是干净的方式与外壳的字符串处理要做到这一点,但我有想出它的麻烦。

(提及一个bash特定的解决方案会很好,但我想知道如何以可移植的方式执行此操作。POSIX 字符串处理似乎应该足够了。)

bash string shell-script filenames posix

3
推荐指数
2
解决办法
8584
查看次数

为什么我可以 cd 到 // 而不是 /// 或 /// 或 ///// 或 ...

当我将目录更改为 时//,它似乎将我置于一个与 非常相似但略有不同的特殊目录中/。但是,尝试添加任何进一步的斜杠 ( ///) 只会让我陷入/.

$ cd /    ;pwd
/
$ cd //   ;pwd
//
$ cd ///  ;pwd
/
$ cd //// ;pwd
/
Run Code Online (Sandbox Code Playgroud)

这似乎//有点特殊,即使它具有相同的目录和所有内容,它仍然是pwd. 为什么是这样?为什么我的工作目录可以是//但不是///

directory pwd

3
推荐指数
1
解决办法
220
查看次数

find 没有将多个斜杠合并为一个的任何原因?

是否真的find不应该进行最简单的路径统一/简化操作,例如将多个连续的斜杠合并在一起(相当于原始形式)?

例如输出find .///是:

.///
.///somefile
[…]
Run Code Online (Sandbox Code Playgroud)

(测试find来自 GNU 和busybox

如果是这样,那是为什么?有没有我遗漏的合理用例?也许对于有人正在搜索find内部脚本的输出的情况?

顺便说一句,同样有趣的是 GNU 的 find for find ./// -maxdepth 0 -printf '%h\n'(的输出%h应该是“文件名的前导目录(除了最后一个元素和它之前的斜杠之外的所有目录)”):(.//只是少了一个/

slash standard find compatibility filenames

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