這是我想要做的:給定目錄「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. 如何更改目錄並在該目錄上運行命令?
- 2. 如何在Clojure的命令行中更改目錄?
- 3. HTACCESS - 更改目錄結構
- 4. 更改defult目錄結構
- 5. django目錄結構模塊的命令
- 6. 如何從命令行對我的目錄進行這些更改? (RoR)
- 7. 更改Mercurial中的目錄結構
- 8. Linux命令打印目錄結構樹
- 9. Linux命令打印目錄結構樹
- 10. 如何使用Windows命令行更改目錄
- 11. python subprocess - 如何更改目錄運行命令?
- 12. 如何更改Ant的fileset命令的目標目錄?
- 13. 在Subversion中更改目錄結構
- 14. 如何在Linux中更改其安裝目錄的命令?
- 15. 如何使用C程序中的exec命令更改目錄?
- 16. 從命令行更改database.location
- 17. 從命令行更改web.config
- 18. Windows中命令行目錄更改的快捷方式?
- 19. 更改目錄和AppleScript終端命令
- 20. 泊塢窗:更改目錄命令
- 21. 更改目錄命令提示符
- 22. Unix命令來更改目錄名稱
- 23. 如何更改VS.NET項目中的Resgen命令行?
- 24. 結構如何執行命令?
- 25. 更改目錄並在一個命令中執行文件
- 26. 在cmd中更改目錄並執行外部命令 - ERLANG
- 27. Bash-如何更改命令的默認目錄
- 28. 從命令行發佈的Visual Studio OneClick未生成正確的目錄結構
- 29. 更改PowerShell的外觀 - 命令行下面的目錄
- 30. 更改ASP.Net MVC目錄結構
謝謝阿西夫,我會盡快嘗試,似乎是一個堅實的解決方案! – EminSqa