Articles of unix

UNIX读取行为

我写了这个小代码来确定读取行为。 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <limits.h> #include <errno.h> int main () { ssize_t ret; int fd; char str[30] = {0}; off_t lret fd = open("./sample", O_RDWR); printf("File descriptor = %d\n",fd); lret = lseek(fd,LONG_MAX,SEEK_SET); printf("%ld\n",lseek(fd, 0, SEEK_CUR)); ret = read(fd, str, 20); if (ret == -1) { perror("read error"); } else […]

Linux:更改文件所有权而不复制?

我有一个REST服务器,其目的是组织各个用户生成的文件。 为了简单起见,服务器和用户都可以访问共享networking文件系统。 工作stream程如下:用户在临时文件夹中生成文件。 然后,他通知服务器将文件放在自己的位置,并将一些元数据存储在数据库中。 服务器应该拥有这些文件,并根据需要照顾他们的删除。 我的问题是:因为文件可能相当大,我想避免昂贵的副本,而只是将文件从临时文件夹移动到他们的最终目的地。 但是,移动文件会阻止服务器更改其所有权( 例如,请参阅此处 )。 有没有办法解决这个问题,没有1)复制文件,2)作为root运行服务器? 编辑:一对夫妇精度: 要移动的文件可以是具有文件层次结构的目录 让服务器拥有最终位置中的文件来限制对其他用户的访问会很好。

perl库path

我需要检索perl库统计信息和分布所在的path。 该path是运行该脚本所必需的。 我在一个计算机集群上。 谁能帮我? 谢谢

用基于匹配组的评估stringreplacestring(优雅的方式,而不是用于…)

我正在寻找一种方法来replace正则expression式匹配的文件的string与另一个string,这些string将从匹配的string中生成/评估。 例如,我想要replace此文件中的时间戳(时间戳+持续时间) 1357222500 3600 … Maybe intermediate strings… 1357226100 3600 … Maybe intermediate strings… … 由人类可读的date表示(date范围)。 到目前为止,我总是使用像Bash这样的shell脚本遍历每行,匹配X行,得到匹配的组string,并在处理后打印行,例如这样(从内存中): IFS=" " for L in `cat file.txt`; do if [[ "${L}" =~ ^([0-9]{1,10})\ ([0-9]{1,4})\ .*$ ]]; then # Written as three lines for better readability/recognition echo -n "`date –date=@${BASH_REMATCH[1]}` – " echo -n "`date –date=@$(( ${BASH_REMATCH[1]} + ${BASH_REMATCH[2]} […]

如何在这个目录中的每个文件中用“goodbye”replace单词“hello”,并且recursion地?

假设我在这个目录中有很多文件。 我想用“再见”来代替“你好”,也是recursion的

基于文件系统中的位置的Shell提示符

我必须在根文件系统下的三个主目录下工作 – home / username,project和scratch。 我想我的shell提示符显示我在哪些顶级目录。 这是我正在做的事情: top_level_dir () { if [[ "${PWD}" == *home* ]] then echo "home"; elif [[ "${PWD}" == *scratch* ]] then echo "scratch"; elif [[ "${PWD}" == *project* ]] then echo "project"; fi } 然后,我将PS1导出为: export PS1='$(top_level_dir) : ' 不幸的是,这不是我想要的。 我home :为我的提示,当我在我的家目录,但如果我切换到草稿或项目,然后提示不会改变。 我不明白bash脚本很好,所以我将不胜感激任何帮助来纠正我的代码。

有没有办法看到一个path的所有中间目录的权限..?

我有一个文件path..是否有任何单一的命令来查看path中的所有中间目录的文件/目录权限..?

使用单行命令删除目录

如何使用单个命令删除多个目录? 是否可以在一个class轮中完成? 如果是,请帮助。 /osmf/mgmt/scheduler>ls -lrt total 22 drwx—— 2 root root 12288 Mar 26 2009 lost+found drwxr-xr-x 4 ctmagent controlm 1024 May 24 2010 ctmagent drwxrwxrwx 3 edwprod edw 1024 Dec 1 09:53 edi drwxrwxrwx 120 edwprod edw 5120 Dec 27 09:37 edw /osmf/mgmt/scheduler> 我可以使用单个命令删除edi和edw吗?

&符号在csh的一行开头

在csh 开头的&符号是做什么的? 它似乎被忽略(没有错误信息),但为什么?

如何检查awk数组是否为空

我是全新的AWK,并试图确定如果我的数组是空的,所以我可以打印一条消息。 通常我使用长度函数,可以像这样检查,但似乎AWK没有那些。 这里是我的工作代码,我只是想打印出一个不同的消息,如果在parsing所有的数据后没有任何数组。 #add to array if condition is met if ($2 == "SOURCE" && $4 == "RESTRICTED"){ sourceAndRestricted[$3]++; } #print out array for (var in sourceAndRestricted){ printf "\t\t"var"\n" } 香港专业教育学院试图这样的事情,而不是工作。 build议? for (var in sourceAndRestricted){ if (var > 1){ printf "\t\t"var"\n" } else { print "NONE" } }