這是我想要做的:給定目錄「XYZ」,我希望能夠設置XYZ的方式,一旦有新的子目錄(「ABC」)創建它,默認情況下,該子目錄包含3個子(「1」,「2」,「3」)。例如:ls -la/ABC/XYZ /將顯示3個文件夾,而無需我手動創建這3個文件夾如何從命令行更改Linux/Unix中的目錄結構?
0
A
回答
0
使用inotify監視文件系統事件並執行相關操作時捕獲「在XYZ中創建Driectory ABC」事件。這是從http://onestraw.net/essay/inotify/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/inotify.h>
#define MONITOR_PATH "/var/onestraw/"
#define MONITOR_MASK IN_CREATE | IN_DELETE | IN_ACCESS | IN_MODIFY
inline void _err(const char *str)
{
perror(str);
exit(1);
}
inline void inotify_loop(int fd)
{
char buf[4096];
size_t len;
struct inotify_event *event;
while (1) {
len = read(fd, buf, sizeof(buf));
if (len < 0) {
_err("read() failed");
}
for (event = (struct inotify_event *)buf;
(char *)event < &buf[len];
event =
(struct inotify_event *)((char *)event + sizeof(*event) +
event->len)) {
if (event->mask & IN_CREATE)
printf("add %s\n", event->name);
if (event->mask & IN_DELETE)
printf("delete %s\n", event->name);
if (event->mask & IN_ACCESS)
printf("access %s\n", event->name);
if (event->mask & IN_MODIFY)
printf("modify %s\n", event->name);
}
}
}
int main(int argc, char *argv[])
{
int fd;
if ((fd = inotify_init()) < 0) {
_err("inotify_init() failed");
}
//if (inotify_add_watch(fd, argv[1], MONITOR_MASK) < 0) {
if (inotify_add_watch(fd, MONITOR_PATH, MONITOR_MASK) < 0) {
_err("inotify_add_watch() failed");
}
inotify_loop(fd);
return 0;
}
0
樣品中爲了做到這一點從命令行,安裝inotify工具。
sudo apt-get install inotify-tools
然後您可以使用以下命令監視創建事件的XYZ目錄。
while ret=$(inotifywait -e create /tmp/XYZ); do mkdir /tmp/XYZ/{1,2,3}; done
只要任何目錄或文件在XYZ被創建,在同時塊的命令將被執行。在這種情況下,mkdir會創建更多的目錄。您可以根據您在塊中的要求添加進一步的檢查。
相關問題
- 1. 如何在Clojure的命令行中更改目錄?
- 2. HTACCESS - 更改目錄結構
- 3. 更改defult目錄結構
- 4. 帶命令的目錄結構。
- 5. 更改Mercurial中的目錄結構
- 6. Linux命令打印目錄結構樹
- 7. Linux命令打印目錄結構樹
- 8. python subprocess - 如何更改目錄運行命令?
- 9. 在Subversion中更改目錄結構
- 10. 如何使用C程序中的exec命令更改目錄?
- 11. 從命令行更改web.config
- 12. 從命令行更改database.location
- 13. 結構如何執行命令?
- 14. 從命令行發佈的Visual Studio OneClick未生成正確的目錄結構
- 15. 更改PowerShell的外觀 - 命令行下面的目錄
- 16. 更改android包目錄結構
- 17. 更改Eclipse構建命令
- 18. 從bash shell腳本中的glob目錄中的命令行執行命令
- 19. 從目錄結構
- 20. 如何在Windows中從特定目錄運行命令?
- 21. 從命令行更改Terminal.app的背景
- 22. 如何從命令行找出計算機的體系結構?
- 23. 從命令行構建Flex Builder項目
- 24. 從命令行構建Qt Creator項目
- 25. 從命令行構建android項目
- 26. 從命令行構建Qt Xcode項目
- 27. 在TFS中更改項目的目錄結構
- 28. 如何在c#項目中更好地改變目錄結構(sln和項目)
- 29. 如何更改maven構建目錄?
- 30. 在命令行上更改輸出目錄For循環
謝謝阿西夫,我會盡快嘗試,似乎是一個堅實的解決方案! – EminSqa