如何使用 bash 运行多个命令并在后台运行它们?
例如:
$ for i in {1..10}; do wait file$i &; done
Run Code Online (Sandbox Code Playgroud)
其中 wait 是自定义二进制文件。
现在我收到一个错误:
syntax error near unexpected token `;'
Run Code Online (Sandbox Code Playgroud)
运行上述命令时。
一旦后台运行,命令应该并行运行。
通过庆典会后文件,这个问题,这一个它仍然不是很清楚,我哪能执行原子写入(追加)操作在bash文件。我有一个在多个实例中运行的脚本,并且在某些时候必须将数据写入文件:
echo "$RESULT" >> `pwd`/$TEMP_DIR/$OUT_FILE
Run Code Online (Sandbox Code Playgroud)
如何使所有并发运行的脚本的所有写入操作都原子化(以便来自一个实例的数据不会与来自另一个实例的数据重叠)?
如何从 ELF 文件中单独提取可加载程序头?通过使用 readelf 检查二进制文件,可以获得类似于以下内容的输出:
$ readelf -l helloworld
Elf file type is EXEC (Executable file)
Entry point 0x400440
There are 9 program headers, starting at offset 64
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
PHDR 0x0000000000000040 0x0000000000400040 0x0000000000400040
0x00000000000001f8 0x00000000000001f8 R E 8
INTERP 0x0000000000000238 0x0000000000400238 0x0000000000400238
0x000000000000001c 0x000000000000001c R 1
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
LOAD 0x0000000000000000 0x0000000000400000 0x0000000000400000
0x000000000000070c 0x000000000000070c R E 200000
LOAD 0x0000000000000e10 0x0000000000600e10 0x0000000000600e10
0x0000000000000230 0x0000000000000238 RW 200000
DYNAMIC 0x0000000000000e28 0x0000000000600e28 0x0000000000600e28 …
Run Code Online (Sandbox Code Playgroud) 如何比较两个目录中的所有文件并将不同的文件复制到另一个目录?例如,假设我们有dir1和dir2:
dir1:
build.gradle
gradle.properties
somejar.jar
javacode.java
anotherjar.jar
dir2:
build.gradle <-- different from build.gradle in dir1
gradle.properties
somejar.jar
javacode.java <-- different from javacode.java in dir1
yetanotherjar.jar
Run Code Online (Sandbox Code Playgroud)
我怎么可能会创建一个新的目录DIR3包含从不同的文件DIR2,在共同文件DIR1和DIR2和所有常见的文件都DIR1和DIR2?dir3应包含:
dir3:
build.gradle <-- from dir2
gradle.properties <-- these are common files both in dir1 and dir2
somejar.jar <--
javacode.java <-- from dir2
anotherjar.jar <-- from dir1
yetanotherjar.jar <-- from dir2
Run Code Online (Sandbox Code Playgroud) 如何将所有新内容从一个目录复制到另一个目录,以便仅从源目录复制新文件(两个目录具有相同的命名树)。例如,这里是目录 A 的布局:
/dirA
a.php
b.txt
subdirA1/
readme.txt
config
source_file1.c
/dirB
c.php
subdirA1/
readme.txt
Run Code Online (Sandbox Code Playgroud)
最后dirB应该在dirA 中包含所有新文件。假设dirA及其子目录中只有新文件。结果应该是两个目录的并集:
/dirB
a.php
b.txt
c.php
subdirA1/
readme.txt
config
source_file1.c
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用 cp -ra:
cp -ra dirA/* dirB/
Run Code Online (Sandbox Code Playgroud)
但dirB完全被dirA覆盖。
我正在尝试检索 ELF 二进制文件中附加部分的内容。此时,我使用以下代码来检索每个部分的名称:
#include <stdio.h>
#include <unistd.h>
#include <stdint.h>
#include <stdlib.h>
#pragma pack(push,1)
#pragma pack(pop)
#define EI_NIDENT 16
/* 32-bit ELF base types. */
typedef unsigned int Elf32_Addr;
typedef unsigned short Elf32_Half;
typedef unsigned int Elf32_Off;
typedef signed int Elf32_Sword;
typedef unsigned int Elf32_Word;
/* 64-bit ELF base types. */
typedef unsigned long long Elf64_Addr;
typedef unsigned short Elf64_Half;
typedef signed short Elf64_SHalf;
typedef unsigned long long Elf64_Off;
typedef signed int Elf64_Sword;
typedef unsigned int Elf64_Word;
typedef unsigned long long …
Run Code Online (Sandbox Code Playgroud)